matlab 如何计算一幅图像中某一灰度值的像素个数

如题所述

方法和详细的操作步骤如下:

1、第一步,打开需要处理的图像,然后编写以下代码,见下图红框标注处,转到下面的步骤。

2、第二步,执行完上面的操作之后,可以看到图像均衡的图片,见下图,转到下面的步骤。

3、第三步,执行完上面的操作之后,画出平衡图片的直方图,在平衡前后对图片进行比较,见下图。这样,就解决了这个问题了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-11

可以配合使用函数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));

第2个回答  2020-01-04
function
greyvalue
=
calcrowgrey(pic)
%备注:输入值为读取文件后的图像数据,可以是m行
n列
或者是[m*n*3]
(彩色图片)
%
直接计算灰度值,如果是黑白图像,计算结束
greyvalue
=
sum(greyvalue
,2);
%判断如果是彩色图像
if
length(size(greyvalue
)>2
greyvalue
=
sum(greyvalue
,3);
end
第3个回答  推荐于2017-09-30
假设A是图像所代表的矩阵,value为某一灰度值,num为图像A中该灰度值的像素个数,则有:
[r,c]=find(A==value);
num=length(r);

或者
num=sum(sum(A==value));本回答被提问者采纳
第4个回答  2010-03-20
很容易。
首先用imread函数把图像读进矩阵中,
然后用一个循环语句,比较像素值,如果值相同,计数器(例如使用变量num)增加1.灰度是三个色素:红绿蓝三个分量的平均值 。