Matlab数字图像处理基础【2】

来源:互联网 发布:怎样查看淘宝好友动态 编辑:程序博客网 时间:2024/04/30 21:06
第二章 图像的加法运算、减法运算和逻辑运算

目录:
2.1 图像的加法运算
2.2 图像的减法运算
2.3 图像的逻辑运算

2.1 图像的加法运算
示例:灰度图的加法运算抑制加性噪声

clc;

clear;

 

I=imread('flower_gray.jpg');               %读取图片

[LH]=size(I);                            %获取大小

K=zeros(L,H);

fori=1:100

  J=imnoise(I,'gaussian',0,0.02);          %随机加噪

  J1=im2double(J);                     %转成double型进行相加

  K=K+J1;

end

K=K/100;

subplot(2,2,1),imshow(I),title('原图像');

subplot(2,2,2),imshow(J),title('加噪声后图像');

subplot(2,2,3),imshow(K),title('处理后图像');


示例:RGB图像的加法运算抑制加性噪声

clc;

clear;

 

I = imread('test_coder.jpg');               %读取图片

[L,H,CH] = size(I);                            %获取大小

K = zeros(L,H,CH);

for i = 1:100

  J =imnoise(I,'gaussian',0,0.02);          %随机加噪

  J1= im2double(J);                     %转成double型进行相加

  K =K + J1;

end

K=K / 100;

subplot(2,2,1),imshow(I),title('原图像');

subplot(2,2,2),imshow(J),title('加噪声后图像');

subplot(2,2,3),imshow(K),title('处理后图像');

 

2.2 图像的减法运算
示例:图像的减法运算显示运动情况

clear;

clc;

 

f=imread('river_gray.jpg');

figure(1),imshow(f);

g=imread('river_change_gray.jpg');

figure(2),imshow(g);

[m,n]=size(f);

fori=1:m

    for j=1:n

        h(i,j)=g(i,j)-f(i,j);   %图像的减法运算

    end

end

figure(3),imshow(h);


2.3 图像的逻辑运算


示例:集合操作


matlab里有关于集合运算的函数有如下的一些:

intersect:集合交集

ismember:是否集合中元素

issorted:判断集合是否排序 (相关函数,sort:排序)

setdiff:集合差集

setxor:集合异或(不在交集中的元素)

union:两个集合的并

unique:返回向量作为一个集合所有元素(去掉相同元素)

举例如下:

>> clear;

>> a=0;

>> A=[1 2 3 4 5];

>> B=[0 1 5 7 2];

>> C=union(A,B)%求集合AB的并集

C =

    0     1    2     3     4    5     7

>> D=intersect(A, B)%求集合AB的交集

D =

    1     2    5

>> E = setdiff(A, B)%求集合差A-B

E =

    3     4

>> F = setxor(A, B)%AB交集的补集

F =

    0     3    4     7

>> ismember(a,A)%判断a是否属于A

ans =

    0

>> issorted(A)

ans =

     1



示例:逻辑操作


clc;

clear;

 

imag1=zeros(256,256);

imag1(120:180,100:190)=1;

subplot(2,3,1);imshow(imag1);title('image1');

imag2=zeros(256,256);

imag2(90:140,90:140)=1;

subplot(2,3,2);imshow(imag2);title('image2');

logical_and=imag1&imag2; subplot(2,3,3);imshow(logical_and); title('image1 and image2');
logical_or=imag1|imag2;subplot(2,3,4); imshow(logical_or); title('image1 or image2');
imag1complement=~imag1; subplot(2,3,5); imshow(imag1complement); title('Notimage1'); 
imag2complement=~imag2; subplot(2,3,6);imshow(imag2complement); title('Notimage2');




0 0
原创粉丝点击