数字图像处理程序若干(matlab)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主程序
clear all
close all
clc
!echo 本次图像处理的菜单如下:!
!echo 1,imgsharping!
!echo 2,imgnegative!
!echo 3,imgsmoothing!
!echo 4,imgsubtracting!
!echo 5,medianfilting!
!echo 6,contraststrength!
!echo 7,lineartransform!
!echo 8,imgfilp!
!echo 9,imgindextransform!
iptsetpref('ImshowBorder', 'tight')
a=1;
img = imread('C:\Users\huanhuan\Desktop\司马.jpg');
figure(1), imshow(img);
while(a==1)
choose=input('please enter your choosing ranging from 1 to 9: '); switch choose
case 1,
imgsharping(img);
case 2,
imgnegative(img);
case 3,
imgsmoothing(img);
case 4,
imgsubstract(img);
case 5,
medianfilting(img);
case 6,
contraststrength();
case 7,
lineartransform();
case 8,
imgfilp(img);
case 9,
imgindextransform();
otherwise
disp('Unknown method.');
end
a=input('continue(1) or quit(2)');
end
函数
1.Imgsharping
function imgsharping(img)
h = [0 -1 0; -1 5 -1; 0 -1 0]; % Laplacian filter
imgHSV = rgb2hsv(img);
v = imgHSV(:,:,3);
v = imfilter(v,h);
imgHSV(:,:,3) = v;
img3 = hsv2rgb(imgHSV);
figure; imshow(img3);
2.Imgnegative
function imgnegative(img)
figure
img2 = imcomplement(img);
imshow(img2);
title('negative image');
zoom on
3,imgsmoothing
function imgsmoothing(img)
img2 = uint8(zeros(size(img)));
img2(:,:,1) = imfilter(img(:,:,1), fspecial('average',5)); img2(:,:,2) = imfilter(img(:,:,2), fspecial('average',5)); img2(:,:,3) = imfilter(img(:,:,3), fspecial('average',5)); figure; imshow(img2);
4,imgsubtracting
function imgsubstract(img)
level = graythresh(img);
BW= im2bw(img,level);
figure(2), imshow(BW)
5,medianfilting
function medianfilting(I)
J = imnoise(I,'salt & pepper',0.02);
imshow(I)
figure, imshow(J)
K = filter2(fspecial('average',3),J)/255;
L = medfilt2(J,[3 3]);
figure, imshow(K)
figure, imshow(L)
6,contraststrength
function contraststrength()
clear;
zx=imread('C:\Users\huanhuan\Desktop\huan.jpg'); imshow(zx);
a=double(zx);
for i=1:256
for j=1:256
b(i,j)=4*a(i,j);
if (b(i,j)>=255)
b(i,j)=255;
end
end
end
b=uint8(b);
figure(2);
imshow(b);
7,lineartransform
function lineartransform()
iptsetpref('ImshowBorder', 'tight')
img = imread('C:\Users\huanhuan\Desktop\huan.jpg'); figure; imshow(img);
[r,c,p]=size(img);
img=double(img);
img=img/256;
for a=1:p
for b=1:r
for d=1:c
if(img(b,d,a)<0.2)
img(b,d,a)=4*img(b,d,a);
end
if(img(b,d,a)>0.2)
if(img(b,d,a)<1)
img(b,d,a)=0.25*img(b,d,a)+0.75;
end
end
end
end
end
figure;
imshow(img);