mAtlAB灰度直方图For循环

b=double(b);这句何用,如果你的图像数据是uint8类型的,转化要用im2double!其次,你的imshow和imhist两个函数要分开画在两个figure上会好点!

首先, Matlab有自带的图像直方图函数a = imhist(f); %你的f需要是灰度图然后来看你的代码问题. f的类型是uint8,它的上限就是255,uint8(255)+1 还是等于 255.错误就在这里啦.如果要改的话可以这样f = double(imread('A.jpg'));最后,如果非要自己写直方图函数.你的代码太慢啦~for i = 0 : 255 a(i+1) = sum(f(:)==i);end这样就快多了.

imhistDisplay histogram of image dataSyntaximhist(I,n)imhist(X,map)[counts,x] = imhist()

或者在 matlab下边输入 help imhist edit histeq %%%灰度图象的直方图数据%%% clc clear fn='rice.tif'; I=imread (fn); J=I; %计算灰度图象的直方图数据 L=256; %灰度级 Ps = zeros(L,1); %统计直方图结果数据 nk=zeros(L,1); [row,col]=size(I); n=

matlab中有关控制循环的有三个命令,break,continue和return.break就是直接跳出该层循环 continue就是直接进入该层循环的下一次迭代 return就是直接退出程序或函数返回了 大概的关系如下 return>break>continue 由于return之后就直接退出程序了,因此带有return的多重循环最好是一个独立的函数,实现特定的功能,如果还需要接着完成某一任务,那么就写一新的函数,而不是在原函数上继续,否则return之后后面的代码就不执行了, 对于简单的跳出循环可能用这些命令就行了,那么对于复杂的循环跳跃就不好应付了.matlab不提供goto指令,因此可以用其他办法来迂回解决.

如果是彩色图像,要对R、G、B3个分量分别画出直方图,如果是灰度图像,直接用imhist(image)就可以画出,imhist只可以画二维的灰度直方图

问题在哪里我也没有看出来 不过建议你还是先定义数组num,并进行初始化为0 试试下面的命令:y=imread('bmp文件'); x=0.11*y(:,:,1)+0.59*y(:,:,2)+0.3*y(:,:,3); imshow(x)

1、打开MATLAB需要处理的图像,然后再下面写出代码是:pic[i,j]=(255)/(u*v)*sum(c[:int(img[i,j])]).2、然后接下来就可以看到图像均衡化的图片.3、最后,画出均衡化图片的直方图如图所示,衡化前后,图片对比一下,这样就可以解决问题了.

im=imread('c:\1.jpg'); %文件名为1.jpg的图像,放在c盘底下,当然路径都可以自己改if size(im,3)>1 %判断如果是彩色图像,转换为灰度图im=rgb2gray(im);endhist_im=imhist(im); %计算直方图bar(hist_im);%画直方图%图片你随便找一张,改成1.jpg放在c盘底下,就行了,我就不传了.

i=imread('pout.tif'); %读自带的图像 imshow(i); figure,imhist(i); [j,t]=histeq(i,64); %图像灰度扩展到0~255,但是只有64个灰度级 figure,imshow(j); figure,imhist(j); figure,plot((0:255)/255,t); %转移函数变换曲线 j=histeq(i,32); figure,imshow(j); %图像灰度扩展到0~255,但只有32个灰度级 figure,imhist(j);

相关文档

matlab显示灰度直方图
直方图均衡化
matlab灰度图像二值化
matlab灰度直方图均衡化
matlab两个图像亮度一致
matlab灰度图像直方图
histeq函数怎么设灰度级
matlab读取图片灰度值
jinxiaoque.net
sgdd.net
jjdp.net
jingxinwu.net
acpcw.com
电脑版