Matlab图像处理

一、图像的运算

1.图像的相加

imadd()
在这里插入图片描述

2.图像的线性组合

imlincomb用于计算两幅图像的线性组合,其调用格式如下:
J=imlincomb(A,I1,B,I2);
A表示第一幅图像的系数,B表示第二幅图像的系数,I1,I2分别表示第一幅原始图像,第二幅原始图像,两幅图像的大小相同,J表示线性组合后图像
函数 imlincomb 按照双精度执行所有算术运算操作,而且仅对最好的输出结果进行截取,该函数的调用格式如下:
Z = imlincomb(A,X,B,Y,C);
其中,Z=AX+BY+C。
MATLAB 会自动根据输入参数的个数判断需要进行的运算。例如:
Z = imlincomb (A,X,C) 计算 Z=AX+C:
Z = imlincomb (A,X,B,Y,) 计算 Z=A
X+B*Y:

clear all;
close all;
clc

image1_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-7970.jpg'
image2_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-8024.jpg'
targetSize = [200 200];%设置图片大小
%读取图像
image1=imread(image1_path);
image2=imread(image2_path);
%显示图像
subplot(221)
r = centerCropWindow2d(size(image1),targetSize);
I1=imcrop(image1,r)%裁剪图片
imshow(I1);
subplot(222)
r = centerCropWindow2d(size(image2),targetSize);
I2=imcrop(image2,r)%裁剪图片
imshow(I2);
imfinfo(image1_path)
imfinfo(image2_path)
subplot(223)
img3=imlincomb(0.5,I1,0.2,I2)
imshow(img3)

运行结果:
在这里插入图片描述

3.图像的减法-imsubtract

imsubtract()

clear all;
close all;
clc

image1_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-7970.jpg'
image2_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-8024.jpg'
img1=imread(image1_path);
img2=imread(image2_path);
img3=imsubtract(img1,50);%降低图像的亮度
background = imopen(img1,strel('disk',15));
img4=imsubtract(img1,background);%减去图像不均匀背景
figure;imshow(img3);
figure;imshow(img4);

3.图像的减法-imabsdiff

imabsdiff()

clear all;
close all;
clc

image1_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-7970.jpg'
image2_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-8024.jpg'
img1=imread(image1_path);
img2=imread(image2_path);
img3=imabsdiff(img1,img2)%通俗一点的解释:找出两幅图像的不同

subplot(221)
imshow(img1)
subplot(222)
imshow(img2)
subplot(223)
imshow(img3)

运行结果:
在这里插入图片描述

4.图像的乘法-immultiply

clear all;
close all;
clc

image1_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-7970.jpg'
image2_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-8024.jpg'
img1=imread(image1_path);
img2=imread(image2_path);
img3=immultiply(img1,img2)
subplot(221)
imshow(img1)
subplot(222)
imshow(img2)
subplot(223)
imshow(img3)

运行结果:
在这里插入图片描述

5.图像的除法-imdivide

imdivide()实现图像归一化的实例
图像归一化最常见的就是最大最小值归一化方法,参考博客:图像归一化处理

clear all;
close all;
clc

image1_path='C:\Users\lenovo\Desktop\1\883064688b08c408b6c180461667ee1.jpg'
img1=imread(image1_path);

I=double(img1);
maxvalue=max(I(:))
minvalue=min(I(:))
%归一化后的图像
X=imdivide(I-minvalue,maxvalue-minvalue);

subplot(221)
imshow(img1)
subplot(222)
imhist(img1)%直方图显示
subplot(223)
imshow(X)
subplot(224)
imhist(X)

运行结果:
在这里插入图片描述

5.图像的取补增强-imcomplement()

图像补码:

在二值图像的补码中,0 变为 1,1 变为 0。黑白发生颠倒。

在灰度或彩色图像的补码中,各值是从所属类支持的最大像素值(对于双精度图像为 1.0)中减去对应像素值而得到的。差值用作输出图像中的像素值。在输出图像中,暗区域变亮,亮区域变暗。对于彩色图像,红色变青色,绿色变品红,蓝色变黄色,反之亦然。

close all;
clc

image1_path='C:\Users\lenovo\Desktop\1\883064688b08c408b6c180461667ee1.jpg'
img1=imread(image1_path);
%图像取补
img2=imcomplement(img1);

subplot(221)
imshow(img1)
subplot(222)
imhist(img1)%直方图显示
subplot(223)
imshow(img2)
subplot(224)
imhist(img2)

运行结果:
在这里插入图片描述

6.边缘检测 edge()

clear all;
close all;
clc

image1_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-7970.jpg'
image2_path='C:\Users\lenovo\Desktop\1\HanJie-20220524-155230-Ping-8024.jpg'
img1=imread(image1_path);
img2=imread(image2_path);

img3=edge(img1,'roberts',0.05);
img4=edge(img2,'roberts',0.05);
subplot(221)
imshow(img1)
subplot(222)
imshow(img2)
subplot(223)
imshow(img3)
subplot(224)
imshow(img4)

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值