共计 1510 个字符,预计需要花费 4 分钟才能阅读完成。
文章和代码以及样例图片等相干资源,曾经归档至【Github 仓库:digital-image-processing-matlab】或者公众号【AIShareLab】回复 数字图像处理 也可获取。
一、试验目标
1. 直方图的显示
2. 计算并绘制图像直方图
3. 直方图的均衡化
二、试验内容
灰度直方图用于显示图像的灰度值散布状况, 是数字图像处理中最简略和最实用的工具。
MATLAB 中提供了专门绘制直方图的函数 imhist()
。
1. 直方图的显示
imshow('D:\pic\DIP3E_CH02\Fig0221(a)(ctskull-256).tif'); | |
title('原图像') | |
% 显示原图像 | |
A=imread('D:\pic\DIP3E_CH02\Fig0221(a)(ctskull-256).tif','tif'); | |
figure; | |
imhist(A); | |
title('对应直方图') |
2. 计算并绘制图像直方图
A:用 bar
函数显示
A=imread('D:\pic\DIP3E_CH02\Fig0221(a)(ctskull-256).tif','tif'); | |
h=imhist(A); | |
h1=h(1:10:256); | |
horz=1:10:256; | |
bar(horz,h1)% 用 bar 函数显示 | |
axis([0 255 0 15000])% 设置程度轴和垂直轴的最大值和最小值 | |
set(gca,'xtick',0:50:255) | |
set(gca,'xtick',0:2000:15000) |
B:用 stem
函数显示
A=imread('D:\pic\DIP3E_CH02\Fig0221(a)(ctskull-256).tif','tif'); | |
h=imhist(A); | |
h1=h(1:10:256); | |
horz=1:10:256; | |
stem(horz,h1,'fill')% 用 stem 函数显示 | |
axis([0 255 0 15000])% 设置程度轴和垂直轴的最大值和最小值 | |
set(gca,'xtick',[0:50:255]) | |
set(gca,'xtick',[0:2000:15000]) |
C:用 plot
函数显示
A=imread('D:\pic\DIP3E_CH02\Fig0221(a)(ctskull-256).tif','tif'); | |
h=imhist(A); | |
plot(h) | |
axis([0 255 0 15000])% 设置程度轴和垂直轴的最大值和最小值 | |
set(gca,'xtick',[0:50:255]) | |
set(gca,'xtick',[0:2000:15000]) |
3. 直方图均衡化
imshow('D:\pic\DIP3E_CH02\Fig0221(a)(ctskull-256).tif'); | |
title('原图像') | |
I=imread('D:\pic\DIP3E_CH02\Fig0221(a)(ctskull-256).tif','tif'); | |
figure; | |
imhist(I),title('对应直方图') | |
% 从失去的直方图能够看出,图像的对比度很低,灰度级集中在 70-160 范畴内,如果只取 | |
% 这个范畴内的灰度,并扩大到 [0,255],则会明显增强图像对比度 | |
J=imadjust(I,[70/255 160/255],[]); | |
figure;imshow(J),title('经灰度级调整后的图') | |
figure;imhist(J),title('灰度级调整后的直方图') | |
% MATLAB 还提供了 histeq 函数(主动直方图均衡化)K=histeq(I); | |
figure; | |
imshow(K),title('经直方图均衡化后的图') | |
figure; | |
imhist(K),title('直方图均衡化后的直方图') |
正文完