请问用MATLAB识别火焰颜色,用图像像素方差法要怎么弄?

2025-04-13 12:28:35
推荐回答(2个)
回答1:

能识别火焰颜色??光肯定是组合的颜色啊,应该说是rgb的分量把

%%%%%%%%%统计rgb分量
A=imread('C:\Documents and Settings\Dell380\桌面\fabric.png');
r=A(:,:,1);
g=A(:,:,2);
b=A(:,:,3);
subplot(2,2,1)
imshow(A);
title('原图')
A=rgb2gray(A);
bw=im2bw(A);
bw=double(bw);
r=double(r);
g=double(g);
b=double(b);
r1=r.*bw;
g1=g.*bw;
b1=b.*bw;
subplot(2,2,2)
imshow(mat2gray(r1));
title('这个图是用r分量与bw相乘,那么我觉得图中有图像部分就应该是火焰的红色信息')
subplot(2,2,3)
imshow(mat2gray(g1));
title('同上面说法,应该是绿色的吧')
subplot(2,2,4)
imshow(mat2gray(b1));
title('蓝色信息')

%%%%%%%%rgb分量绘制三维立体图
A=imread('C:\Documents and Settings\Administrator\桌面\fabric.png');
r=A(:,:,1);
g=A(:,:,2);
b=A(:,:,3);
subplot(2,2,1)
imshow(A);
title('原图')
A=rgb2gray(A);
[m,n]=size(A);
bw=im2bw(A);
bw=imfill(bw,'hole');
subplot(2,2,2)
imshow(bw);
[m,n]=find(bw==1);
c=size(m);
r1=zeros(1,c);
g1=zeros(1,c);
b1=zeros(1,c);
for i=1:c
r1(i)=r(m(i),n(i));
g1(i)=g(m(i),n(i));
b1(i)=b(m(i),n(i));
end
plot3(r1,g1,b1)

回答2:

这个问题是一个好模糊,你首先必须清除的绿色,你要问什么样的范围,在这个范围内的像素,然后在RGB颜色的意思

均值函数方差函数是var