怎么在MATLAB里求出一个二值图像1值像素和0值像素个数

怎么在MATLAB里求出一个二值图像1值像素和0值像素个数,第1张

假设你的二值图像变量为“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获取图像的二进制代码 不知道我的对不对等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9487710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存