实验四 空间域增强-灰度变换
实验目的:
1.利用matlab进行处理图像;
2.掌握常用的灰度变换方法进行空间域增强。
实验内容:
(1)根据书上的原理,实现对比度拉伸变换,并对图像进行处理,把原图和处理后的结果显示在一个窗口中。
(2)根据下面的公式对图像进行处理,自行选择不同的参数m和E,把原图和处理后的结果显示在一个窗口中。
请将实验代码贴在此处: |
1.1 f = imread('fractured_spine.tif'); [m,n] = size(f); f = im2double(f); alpha = 0.3; belta = 1.5; gamma = 0.5; a = 0.2; b = 0.7; g = ones(m,n); for i = 1:m for j = 1:n if (f(i,j)<a && f(i,j)>=0) g(i,j) =f(i,j)*alpha; end if(f(i,j)<b && f(i,j)>=a) g(i,j) =(f(i,j)-a)*belta+a*alpha; end if(f(i,j)<1 && f(i,j)>=b) g(i,j) =(f(i,j)-b)*gamma+belta*(b-1)+a*alpha; end end end figure subplot(121),imshow(f); subplot(122),imshow(g); 1.2 f = imread('fractured_spine.tif'); f = im2double(f); e = 4; m = 0.5; g = 1./(1+(m./f).^e); figure subplot(121),imshow(f); subplot(122),imshow(g); |
请将运行结果贴在此处: |
![]() ![]() |
- 请用如下变换曲线对图像进行处理,并把处理后的图片和原图显示在一个窗口中。
请将实验代码贴在此处: |
%% 6 f = imread('fractured_spine.tif'); [m,n] = size(f); f = im2double(f); a=0.3; b=0.3; g = ones(m,n); h = ones(m,n); k = ones(m,n); for i = 1:m for j = 1:n if (f(i,j)<a && f(i,j)>=0) g(i,j) =f(i,j)*0; end if(f(i,j)<b && f(i,j)>=a) g(i,j) =(f(i,j)-a)*0+a*0; end if(f(i,j)<1 && f(i,j)>=b) g(i,j) =(f(i,j)-b)*0; end end end for i = 1:m for j = 1:n if (f(i,j)<a && f(i,j)>=0) h(i,j) =f(i,j)*0; end if(f(i,j)<b && f(i,j)>=a) h(i,j) =(f(i,j)-a)*0+a*0; end if(f(i,j)<1 && f(i,j)>=b) h(i,j) =(f(i,j)-b)+0*(b-1)+a*0; end end end for i = 1:m for j = 1:n if (f(i,j)<a && f(i,j)>=0) k(i,j) =f(i,j); end if(f(i,j)<b && f(i,j)>=a) k(i,j) =a; end if(f(i,j)<1 && f(i,j)>=b) k(i,j) =(f(i,j)-b)*1+a; end end end figure subplot(221),imshow(f); subplot(222),imshow(g); subplot(223),imshow(h); subplot(224),imshow(k); |
请将运行结果贴在此处: |
![]() |
- 给定了图像‘aerial_image.tif’和图像‘fractured_spine.tif’(这两幅图像如果用imread报错,请换成其他图像),请用幂律变换,对图片进行不同程度的灰度变换。并分别把这两幅图像的原图和处理后的结果显示在一个窗口中。幂律变换公式如下:
请将实验代码贴在此处: |
f = imread('fractured_spine.tif'); f = im2double(f); g = f.^4; figure subplot(121),imshow(f); subplot(122),imshow(g); |
请将运行结果贴在此处: |
![]() |
g= imadjust(f, [low_in, high_in], [low_out, high_out], gamma)
请将实验代码贴在此处: |
f = imread('fractured_spine.tif'); f = im2double(f); g = imadjust(f,[0.5 0.7],[0 1],4); figure subplot(121),imshow(f); subplot(122),imshow(g); %%4 |
请将运行结果贴在此处: |
![]() |
- 利用函数histeq对图像进行直方图均衡,并显示均衡后的结果。
请将实验代码贴在此处: |
%% 5 % ¶ÁÈëͼÏñ I = imread('football.jpg'); % ת»»Îª»Ò¶ÈͼÏñ gray = rgb2gray(I); a=histeq(gray); b=histeq(gray,255); figure subplot(141),imhist(a); subplot(142),imshow(a); subplot(143),imhist(b); subplot(144),imshow(b); |
请将运行结果贴在此处: |
![]() |
- 使用函数histeq()对灰度图像’pout.tif’做直方图规定化处理,要匹配直方图的图像分别用’coins.png’和’circuit.tif’,并且要求将原图和规定化后的两幅图像显示在同一个图像窗口中,原始图像的直方图和直方图规定化后图像的直方图显示在另一个图像窗口中。
请将实验代码贴在此处: |
%% 6 I = imread('pout.tif'); Ieq = histeq(I); figure; subplot(1,2,1); imshow(I); title('ÔʼͼÏñ'); subplot(1,2,2); imshow(Ieq); title('Ö±·½Í¼¹æ¶¨»¯ºóµÄͼÏñ'); coins = imread('coins.png'); circuit = imread('circuit.tif'); coins_gray = rgb2gray(coins); circuit_gray = rgb2gray(circuit); coins_eq = histeq(coins_gray); circuit_eq = histeq(circuit_gray); figure; subplot(1,2,1); imshow(coins_gray); subplot(1,2,2); imshow(coins_eq); figure; subplot(1,2,1); imshow(circuit_gray); title('Ôʼµç·ͼÏñ'); subplot(1,2,2); imshow(circuit_eq); title('µç·ֱ·½Í¼¹æ¶¨»¯ºóµÄͼÏñ'); figure; subplot(1,2,1); imhist(I); subplot(1,2,2); imhist(Ieq); |
请将运行结果贴在此处: |
![]() |