matlab 如何统计某一区域行列的像素个数

I=[0 0 1 1 1 1 0 0 0; 0 0 0 1 1 1 0 0 0; 0 0 0 0 1 0 0 0 0; 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 0 0 0 0]; 如何统计每行每列值为1的像素个数

第1个回答  推荐于2016-06-30
直接sum就好了。
统计列的用sum(I),统计行的用sum(I,2)本回答被提问者采纳
第2个回答  2012-10-11
没错用sum(I)就可以,此外,如果I不是由0和1组成的,可以参考如下公式:
sum(I(I==x)); % x = 1 or 其他指定值;本回答被网友采纳
第3个回答  推荐于2016-04-30
可以配合使用函数find和函数length或者函数find和函数length求得。
1、函数find和函数length配合使用获得像素为value的像素个数
% 读入数据112.bmp是要读入的图像
I = imread('112.bmp');
% 如果为彩色图像需转为灰度图像,否则不需要
I = rgb2gray(I);
% value为要计算的像素值
[r,c]=find(I==value);
% 获得个数
num=length(r);
2、函数find和函数sum配合使用获得像素为value的像素个数
% 读入数据112.bmp是要读入的图像
I = imread('112.bmp');
% 如果为彩色图像需转为灰度图像,否则不需要
I = rgb2gray(I);
% 获得像素值为value的素值个数
num=sum(sum(I==value));
相似回答