需要一段matlab程序计算一张灰度图的平均灰度值,但是希望程序能剔除纯黑色的像素,不算近平均值里。

这下面是我截取人家的程序,希望能改进,就是计算灰度平均值的时候自动剔除图片里纯黑色的像素,不算进平均值里。只算有灰度的部分。新手求助!急! 谢谢。或者可以发邮箱,homelee@yahoo.cn 请附上程序说明。万分感谢。
I=imread(x.jpg');
startX=1; % 看你选多大区域,这是起始点横坐标,可以改变它
startY=1; % 看你选多大区域,这是起始点纵坐标,可以改变它
endX=125; % 看你选多大区域,这是终止点横坐标,可以改变它
endY=66; % 看你选多大区域,这是终止点纵坐标,可以改变它

pixelSum=0; % 像素之和初始化为0
count= 0; % 记录像素区域个数,但也可以用以上坐标计算
for i=startX:endX
for j=startY:endY
pixelSum=pixelSum+int16(I(i,j)) %连加区域内各个像素
count=count+1;
end
end
average=pixelSum/count % 得到平均值

基本按照你贴的程序改了下,对cameraman图像进行灰度平均值统计,灰度为零的点不计入点数。
clear;close all;
I=imread('cameraman.tif');
startX=1;
startY=1;
[endX,endY]=size(I);

pixelSum=0;
count= 0;
tempij=0;
for i=startX:endX
for j=startY:endY
tempij=uint64(I(i,j));
if tempij>0
pixelSum=pixelSum+tempij;
count=count+1;
end
end
end
average=pixelSum/count % 得到平均值
温馨提示:内容为网友见解,仅供参考
无其他回答

matlab 如何计算一幅图像中某一灰度值的像素个数
1、第一步,打开需要处理的图像,然后编写以下代码,见下图红框标注处,转到下面的步骤。2、第二步,执行完上面的操作之后,可以看到图像均衡的图片,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,画出平衡图片的直方图,在平衡前后对图片进行比较,见下图。这样,就解决了这个问题了。

用matlab计算一副灰度图所有灰度值的方差,要求有完整的代码。谢谢~~
比如说你的灰度图矩阵叫Ig.V = var(double(Ig(:)));V就是了

matlab 如何计算一幅图像中某一灰度值的像素个数
1、第一步,打开需要处理的图像,然后编写以下代码,见下图红框标注处,转到下面的步骤。2、第二步,执行完上面的操作之后,可以看到图像均衡的图片,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,画出平衡图片的直方图,在平衡前后对图片进行比较,见下图。这样,就解决了这个问题了。

matlab中怎么输出图像的一行或一列的像素值
如果I是存储的灰度图像的矩阵,假设你的点坐标为(x,y),则I(x,y)就是该点的灰度值

matlab中,有幅灰度图像,对所有元素灰度值求个平均值
其他回答 二楼的计算有问题吧,不该用sum,应该用个mean就可以了。其它的如2楼所述。至于mean的格式为mean(I,1)还是mean(I,2),看你的具体存储格式了。 独人三影 | 发布于2012-01-06 举报| 评论 3 0 为您推荐: matlab灰度图像转彩色 matlab灰度图像处理 matlab灰度图像二值化 什么是灰度图像 ...

matlab求取图像的灰度图、图像轮廓以及二值化图像
imbinarize函数是你的工具。通过设置阈值,imbinarize会将灰度图像中的像素值分为两个清晰的类别:黑色(值为0)和白色(值为1),这在图像分割和物体提取中非常关键。结合MATLAB应用程序,你可以直观地操作这些函数,实现从彩色图像到灰度图,再到二值化的完整流程,从而得到所需的结果。

怎么用matlab提取灰度值啊?
1.调用matlab的图像读取函数imread读图片,把图片放在work文件夹下 I = imread('样品.jpg');2.变为灰度图 G = rgb2gray(I);3.双击workspace中的G项,在弹出的array edit中就看到了灰度矩阵

matlab中如何计算一个区域的像素平均值
我写了一段程序,运行通过了,现在贴给你。先把一副灰度图象myPicture.jpg图像放到你当前工作目录下,然后直接加载:本程序的计算一副图象矩阵中左上角3*3个像素的平均值,你可以比猫画虎地按照需要改区域。I=imread('myPicture.jpg'); %加载图像并存储在I变量 startX=1; % 看你选多大区域,这...

怎么用matlab编程计算一个不规则图形的面积
最简单的思路:先转成灰度图,然后转成二值图像,然后利用黑色\/总像素的比值乘以图像的总面积,得到图形的面积。如果想做的细,其中的任何一个步骤都会很精致,尤其是二值化,算法有很多种,需要结合实际情况选择合用的算法,或者编写程序根据图像特征自动选择算法。再麻烦一点的话,彩色图像的色彩分割本身...

怎么用matlab代码计算白色区域像素数,要完整matlab代码
灰度图中,白色像素的数值为1,黑色像素为0;考虑到实际中颜色可能不会那么纯,我姑且认为大于0.9的为白色;小于0.1的为黑色;以下以计算黑白像素的个数 white=sum(sum(c>0.9))black=sum(sum(c<0.1))为了证明以上的合理性我输入 total=white+black [m n]=size(c);total2=m*n 发现total...

相似回答