資源簡介
MATLAB識別窗戶的一個圖像處理代碼,魯棒性不強,對于較規整的窗戶有不錯的效果
代碼片段和文件信息
clc;clear?all
a=imread(‘normal3.bmp‘);?%讀入
%為了增加普適性我們需要分析墻體顏色...認為墻體單色吧認為最上面一定是墻而不是窗戶%
R=a(1:1)+a(2:1)+a(3:1);?RR=sum(R‘);
G=a(1:2)+a(2:2)+a(3:2);?GG=sum(G‘);
B=a(1:3)+a(2:3)+a(3:3);?BB=sum(B‘);
if?max(max(RRGG)BB)==RR
????choose=1;
end
if?max(max(RRGG)BB)==GG
????????choose=2;
end
if?max(max(RRGG)BB)==BB
????????choose=3;
end
b=a(::choose);????%取分量
%b=rgb2gray(a);
level=graythresh(b);
%b=ordfilt2(b3ones(34));
c=im2bw(blevel);????%圖像二值化
d=sum(c);??????%列向量求和(因為二值化效果不好,求和后達到預期效果)
s=size(a);
distance=[inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf?inf];
distancedown=distance;
delta=distance;%distance用來存距離,delta用在存距離的差
windowx=0;%x方向的窗戶
test=c(1:);%判斷照片是白天還是晚上
if(sum(test‘)>(1/100)*s(2))
????d_or_n=0;
評論
共有 條評論