第1个回答 2024-12-15
直方图均衡化是一种常用的图像增强技术,它通过调整图像的灰度级分布,使得图像的整体亮度得到提升,对比度得到增强。在MATLAB中,我们可以使用内置函数histeq实现这一操作。例如,对于一张名为'1.jpg'的彩色图像,首先将其转换为灰度图像,代码如下:
>> I=imread('1.jpg');
>> J=rgb2gray(I);
接着,通过histeq函数进行直方图均衡化处理,同时生成均衡化后的图像H:
>> H=histeq(J);
我们可以使用subplot命令在同一个窗口中展示原始图像J及其直方图,以及均衡化后的图像H及其直方图,代码如下:
>> subplot(2,2,1),imshow(J)
>> subplot(2,2,2),imshow(H)
>> subplot(2,2,3),imhist(J)
>> subplot(2,2,4),imhist(H)
直方图规定化则是将图像的直方图调整到指定的灰度级数量,例如,将灰度级调整到32级,代码如下:
>> I=imread('0.jpg');
>> J=histeq(I,32);
使用imhist函数可以获取直方图图像向量counts,然后通过histeq函数将原始图像Q的直方图调整到指定的向量counts,代码如下:
>> [counts,x]=imhist(J);
>> Q=imread('0.jpg');
>> M=histeq(Q,counts);
通过subplot命令可以展示原始图像Q及其直方图,以及调整后的图像M及其直方图,代码如下:
>> subplot(2,2,1),imshow(Q);
>> subplot(2,2,2),imhist(Q);
>> subplot(2,2,3),imshow(M);
>> subplot(2,2,4),imhist(M);
以上就是使用MATLAB进行直方图均衡化和直方图规定化的具体实例,通过这些操作,可以有效改善图像的视觉效果,提高图像质量。