matlab直方图均衡化问题

我想画直方图,可是程序总是出错误。程序如下:a=imread('D:\matlab\work\1.jpg');%读取图像
b=a(:,:,1);
imshow(b); %显示原图
c=histeq(b); %直方图均衡化
figure;
imshow(c); %显示处理后的图像

不能出来直方图,总是提示
??? Error using ==> mtimes
Integers can only be combined with integers of the same class, or scalar doubles.

Error in ==> hist at 60
xx = miny + binwidth*(0:x);

请高手看看是什么问题???

直方图均衡化是专门对于灰度图像而言的处理算法,所以你得先转化为灰度图像,具体程序如下:

a=imread('e:\b.jpg');%读取图像

b=rgb2gray(a);       %转化为灰度图像             

imshow(b);           %显示原图

c=histeq(b);         %直方图均衡化

subplot(121),imshow(a);

subplot(122),imshow(c);           %显示处理后的图像

 效果如下图所示

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-14

Opencv13(直方图和均衡化)