数字图像处理之图像的基本运算 matlab实现

代数运算

 加法

 加法运算的定义:C(X,Y)=A(X,Y)+B(X,Y),主要的应用是叠加图像、图像亮暗的调整等。

首先给出读取图像的代码,下面不再做陈述。

%%
%读取图像
path1='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-flower-1.png.';
path2='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-flower-2.png';
path3='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-flower-3.png';
path4='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-house.jpg';
path5='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-electric.jpg';
img1=imread(path1);     %imread()读取图像
img2=imread(path2);
img3=imread(path3);
img4=imread(path4);
img5=imread(path5);

图像的加法代码如下,下面依次为运行效果。

%%
%图像的相加
img_imadd=imadd(img3,30);     %imadd()两幅图像的加法
figure,imshow(img3);
figure,imshow(img_imadd);

减法 

 减法运算的定义:C(X,Y)=A(X,Y)-B(X,Y),主要的应用是去除不需要的叠加性图案、观察同一场景两幅图像之间的变化等。

图像的减法代码如下,下面依次为运行效果。

%%
%图像的相减
img_imsubtrcat=imsubtract(img1,50);%imsubtract()两幅图像的减法
figure,imshow(img1);
figure,imshow(img_imsubtrcat);

 

乘法

乘法运算的定义:C(X,Y)=A(X,Y)*B(X,Y),主要的应用是图像的局部显示。

乘法运算的代码如下,下面依次为运行效果。

%%
%图像的乘法
img_immultilpy=immultiply(img4,1.8);%immultiply()两幅图像的乘法
figure,imshow(img4);
figure,imshow(img_immultilpy);

除法 

除法运算的定义:C(X,Y)=A(X,Y)/B(X,Y),主要的应用是用来归一化显示。求反运算则是获得一个图像的负像、获得一个子图像的补图像。定义为:C(X,Y)=R-c(X,Y),R为c(X,Y)的灰度级,下面的为255。

除法运算的代码如下,下面依次为运行效果。

%%
%图像的除法
img_divide=imdivide(img5,0.6);%imdivide()两幅图像的除法
img_divide_1=255-img_divide;    %图像的求反
figure,imshow(img5);
figure,imshow(img_divide);
figure,imshow(img_divide_1);

 

线性运算

 线性运算则是对上面方法的组合,调用imlincomb函数,imlincomb(A,X,B)则是Z=A*X+B

线性代码段如下:

%%
%图像的线性
img_imlincomb=imlincomb(1.2,img1,1.2,img2);%imlincomb()两幅图像的线性组合
figure,imshow(img1);   %imlincomb(A,X,B,Y,C)%Z=A*X+B*Y+C
figure,imshow(img2);
figure,imshow(img_imlincomb);

下面附上完整的代码以及5幅原图像,读者可修改路径直接运行代码。

clear all;
close all;
clc;
%%
%读取图像
path1='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-flower-1.png.';
path2='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-flower-2.png';
path3='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-flower-3.png';
path4='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-house.jpg';
path5='D:\matlab\bin\begin\img_process\Img_Proc\EXP2\2-electric.jpg';
img1=imread(path1);     %imread()读取图像
img2=imread(path2);
img3=imread(path3);
img4=imread(path4);
img5=imread(path5);
%%
%图像的相加
img_imadd=imadd(img3,30);     %imadd()两幅图像的加法
figure,imshow(img3);
figure,imshow(img_imadd);
%%
%图像的相减
img_imsubtrcat=imsubtract(img1,50);%imsubtract()两幅图像的减法
figure,imshow(img1);
figure,imshow(img_imsubtrcat);
%%
%图像的乘法
img_immultilpy=immultiply(img4,1.8);%immultiply()两幅图像的乘法
figure,imshow(img4);
figure,imshow(img_immultilpy);
%%
%图像的除法
img_divide=imdivide(img5,0.6);%imdivide()两幅图像的除法
img_divide_1=255-img_divide;    %图像的求反
figure,imshow(img5);
figure,imshow(img_divide);
figure,imshow(img_divide_1);
%%
%图像的线性
img_imlincomb=imlincomb(1.2,img1,1.2,img2);%imlincomb()两幅图像的线性组合
figure,imshow(img1);   %imlincomb(A,X,B,Y,C)%Z=A*X+B*Y+C
figure,imshow(img2);
figure,imshow(img_imlincomb);


 

 

 

 

 

 

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值