假设你的二值图像变量为“bw”,则数值为“1”的像素个数(设变量“numVal_1”)是:
numVal_1 = sum(sum(bw));
连用两次sum是将图像中数值的行和列分别加在一起,就可求出像素为1的总数。
要求数值为“0”的像素数(设变量“numVal_0”)可以这样:
numVal_0 = length(find(bw==0));
其中“find(bw==0)”输出所有bw为0的像素序号,“length”函数求序号的长度,也就是所求的数值为“0”的像素个数;
比例:
numVal_1/(numVal_1+numVal_0)
或者:
numVal_1/(size(bw,1)size(bw,2))
其中“size(bw,1)”求bw中的行数,“size(bw,2)”求bw中的列数。
图像1和2为RGB图,放在m文件夹下;直接输入二值的话就不用im2bw了,pio是相似比
I1=imread('1jpg');
I2=imread('2jpg');
I1_bw=im2bw(I1);%%二值化
I2_bw=im2bw(I2);
[h,w]=size(I1_bw);%%获取图的宽高h/w
sum=0;
for i=1:h
for j=1:w
if I1_bw(i,j)==I2_bw(i,j)%%逐点比较相似
sum=sum+1;
end
end
end
pio=double(sum)/h/w;
你这样做会得到二值图像,但是会丢失大部分信息。正确的做法是:将每个图像中对应的像素(大小为0-255)转换为8位二进制数。如果是彩色的话是3层,黑白的话是1层。将得到的数据reshape即可
以上就是关于怎么在MATLAB里求出一个二值图像1值像素和0值像素个数全部的内容,包括:怎么在MATLAB里求出一个二值图像1值像素和0值像素个数、急急急!求matlab图像求二值图像相似度,在线等!、matlab获取图像的二进制代码 不知道我的对不对等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)