?? matlab.txt
字號:
clc,clear,close all %清空Matlab工作平臺所有變量(準備工作)
b=imread('car3.jpg'); %讀取圖像“車3”的信息
tic %tic toc函數可以獲得程序執行時間,此處用于獲得整個程序的運行時間。
figure(1),imshow(b); %需要多個窗口同時打開的時候使用figure語句;
%如果窗口不存在,則產生新圖形窗口并設置為當前圖形窗口,該窗口名為“Figure No.n”,而不關閉其他窗口。
%imshow可用于顯示“車3”的圖像
[size1,size2,size3]=size(b) %得到“車”的矩陣各維的大小
c=zeros(size1,size2,size3); %生成與“車”矩陣各維大小相同的全0矩陣c
L=b(:,:,1)<80 & b(:,:,2)<80 & b(:,:,3)>100; %suit for 'car2.jpg';'car3.jpg'
% L=b(:,:,1)<160 & b(:,:,2)<160 & b(:,:,3)>190; % suit for 'car1.jpg'
c(L)=255;
L1=~L;
c(L1)=0;
c1=uint8(c); %類型無符號整型(uint8),即圖像矩陣中每個數據占用1個字節。存儲灰度圖像只需要一個數據矩陣。
%數據類型是uint8,[0,255]陣中每個數據占用1個字節。
figure(2);imshow(c1) %打開窗口2,顯示圖像c1
maxx=0;maxy=0;minx=size2;miny=size1; %給maxx\maxy\minx\miny分別初始化
for i=1:size1
for j=1:size2
if c(i,j,1)==255
if i<miny
miny=i;
end
if i>maxy
maxy=i;
end
if j<minx
minx=j;
end
if j>maxx
maxx=j;
end
end
end
end
minx
miny
maxx
maxy
%c1=uint8(c);
%figure(2);imshow(c1)
c2=imcrop(b,[minx,miny,maxx-minx,maxy-miny]);
figure(3);imshow(c2);
[m1,m2]=max(max(c));
[w1,w2]=max(c(:,m2(:,:,1),:));
angle1=atan(abs(w2(:,:,1)-miny)/(maxx-minx));
angle1=angle1/2*180/pi;
p1=imrotate(c2,-angle1+30);
p2=imrotate(p1,-30);
figure(4);imshow(p2)
%=====
[size1,size2,size3]=size(p2)
cc=zeros(size1,size2,size3);
% L=(b(:,:,1)+10<b(:,:,3)) & (b(:,:,2)+10< b(:,:,3)); %suit for 'car2.jpg';'car3.jpg'
LL=p2(:,:,1)<80 & p2(:,:,2)<80 & p2(:,:,3)>100; %suit for 'car2.jpg';'car3.jpg'
% L=b(:,:,1)<160 & b(:,:,2)<160 & b(:,:,3)>190; % suit for 'car1.jpg'
cc(LL)=255;
LL1=~LL;
cc(LL1)=0;
cc1=uint8(cc);
figure(5);imshow(cc1)
maxx=0;maxy=0;minx=size2;miny=size1;
for i=1:size1
for j=1:size2
if cc(i,j,1)==255
if i<miny
miny=i;
end
if i>maxy
maxy=i;
end
if j<minx
minx=j;
end
if j>maxx
maxx=j;
end
end
end
end
minx
miny
maxx
maxy
cc2=imcrop(p2,[minx+3,miny+10,maxx-minx-6,maxy-miny-20]);
figure(6);imshow(cc2);
figure(7);im2bw(cc2);
toc
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -