数字图像处理程序若干(matlab)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档