三、实验具体代码以及结果 1.实验代码
%clc clear
src_path='D:\\histogram matching.bmp'; %原始图片路径 dst_path='D:\\picture\\'; %分割图片后保存路径 mkdir(dst_path); A = imread(src_path); %读入原始图片 [m,n,l] = size(A); %获得尺寸
for i = 1:2
for j = 1:5
m_start=1+(i-1)*fix(m/2); m_end=i*fix(m/2);
n_start=1+(j-1)*fix(n/5); n_end=j*fix(n/5);
AA=A(m_start:m_end,n_start:n_end,:); %将每块读入矩阵
imwrite(AA,[dst_path num2str(i) '-' num2str(j) '.jpg'],'jpg'); %保存每块图片 end end
cd 'D:\\pic'
x1=imread('1-3.jpg');%%%%%%%%%目标读取图像 x2=imread('1-4.jpg'); x3=imread('1-5.jpg'); x4=imread('2-1.jpg'); x5=imread('2-5.jpg');
% matlab 自带的自动确定阈值的方法 level1=graythresh(x1); level2=graythresh(x2); level3=graythresh(x3); level4=graythresh(x4); level5=graythresh(x5);
%用得到的阈值直接对图像进行二值化处理并显示 BW1=im2bw(x1,level1); BW2=im2bw(x2,level2); BW3=im2bw(x3,level3); BW4=im2bw(x4,level4); BW5=im2bw(x5,level5); figure(1),imshow(BW1); figure(2),imshow(BW2); figure(3),imshow(BW3); figure(4),imshow(BW4); figure(5),imshow(BW5);
%直方图均衡化处理
%%%%%%%%%%调用直方图均衡化函数 histeq()%%%%
%均衡化处理后的灰度级直方图分布
figure(6),imhist(histeq(rgb2gray(x1))); figure(7),imhist(histeq(rgb2gray(x2))); figure(8),imhist(histeq(rgb2gray(x3))); figure(9),imhist(histeq(rgb2gray(x4))); figure(10),imhist(histeq(rgb2gray(x5)));
%%%均衡化处理后的图像%%%%%%
figure(11),imshow(histeq(rgb2gray(x1))); figure(12),imshow(histeq(rgb2gray(x2))); figure(13),imshow(histeq(rgb2gray(x3))); figure(14),imshow(histeq(rgb2gray(x4))); figure(15),imshow(histeq(rgb2gray(x5)));
因篇幅问题不能全部显示,请点此查看更多更全内容