您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页图像的代数运算

图像的代数运算

来源:尚车旅游网
图像的代数运算

实验⼆图像的代数运算⼀、实验⽬的

1.了解图像的算术运算在数字图像处理中的初步应⽤。2.体会图像算术运算处理的过程和处理前后图像的变化。⼆、实验原理

图像的代数运算是图像的标准算术操作的实现⽅法,是两幅输⼊图像之间进⾏的点对点的加、减、乘、除运算后得到输出图像的过程。

使⽤MATLAB的基本算术符(+、-、*、/ 等)可以执⾏图像的算术操作,但是在此之前必须将图像转换为适合进⾏基本操作的双精度类型。为了更⽅便地对图像进⾏操作,MATLAB 图像处理⼯具箱包含了⼀个能够实现所有⾮稀疏数值数据的算术操作的函数集合。下表列举了所有图像处理⼯具箱中的图像代数运算函数。表2-1 图像处理⼯具箱中的代数运算函数函数名功能描述

Imabsdiff 两幅图像的绝对差值Imadd 两幅图像的加法Imcomplement 补⾜⼀幅图像Imdivide 两幅图像的除法

Imlincomb 计算两幅图像的线性组合Immultiply 两幅图像的乘法imsubtract 两幅图像的减法三、实验步骤及结果步骤:

1.图像的加法运算

在MATLAB中,如果要进⾏两幅图像的加法,或者给⼀幅图像加上⼀个常数,可以调⽤imadd 函数来实现。imadd函数将某⼀幅输⼊图像的每⼀个像素值与另⼀幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。imadd函数的调⽤格式如下:

Z = imadd(X,Y)2.图像的减法运算

在MATLAB中,使⽤imsubtract函数可以将⼀幅图像从另⼀幅图像中减去,或者从⼀幅图像中减去⼀个常数。imsubtract函数将⼀幅输⼊图像的像素值从另⼀幅输⼊图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。imsubtract函数的调⽤格式如下:Z = imsubtract(X,Y);3. 图像的乘法运算

在MATLAB中,使⽤immultiply函数实现两幅图像的乘法。immultiply函数将两幅图像相应的像素值进⾏元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。immulitply函数的调⽤格式如下:Z = immulitply(X,Y)4.图像的除法运算

在MATLAB中使⽤imdivide函数进⾏两幅图像的除法。imdivide函数对两幅输⼊图像的所有相应像素执⾏元素对元素的除法操

作(点除),并将得到的结果作为输出图像的相应像素值。imdivide函数的调⽤格式如下:Z = imdivide(X,Y)5.图像的四则代数运算

可以综合使⽤多种图像代数运算函数来完成⼀系列的操作。结果:

四、程序源代码I = imread('8.jpg');J = imread('9.jpg');K = imadd(I,J);subplot(3,4,1)imshow(I);title('原图');subplot(3,4,2)imshow(J);title('副图');subplot(3,4,3)imshow(K);title('加法图');

%给图像的每⼀个像素加上⼀个常数可以使图像的亮度增加RGB = imread('8.jpg');RGB2 = imadd(RGB,50);

subplot(3,4,4);imshow(RGB2);title('加亮度');

%给图像的每⼀个像素减上⼀个常数可以使图像的亮度降低RGB1 = imread('8.jpg');RGB12 = imadd(RGB,-50);subplot(3,4,5);imshow(RGB12);title('减亮度');%图像的减法运算

%⽣成其背景亮度图像,然后再从原始图像中将背景亮度图像减去rice = imread('8.jpg');background = imerode(rice, strel('disk',15));rice2 = imsubtract(rice, background);subplot(3,4,6);imshow(rice2);title('背景相减');%图像的减法运算%rice11 = imread('2.jpg');%d2 = imread('7.jpg');

%rice21 = imsubtract(rice11, d2);RI = imsubtract(I, J);subplot(3,4,7);imshow(RI);title('原副图⽚相减');%图像的乘法运算I1 = imread('9.jpg');J1 = immultiply(I1,1.2);subplot(3,4,8);imshow(I1);title('原图2');

subplot(3,4,9);imshow(J1);title('相乘');%图像的除

Rice = imread('9.jpg');I = double(rice);J= I * 0.43 + 90;Rice2 = uint8(J);

Ip = imdivide(rice, rice2); subplot(3,4,10);Imshow(Ip);title('相除');

%图像的四则代数运算I11 = imread('8.jpg');I12 = imread('9.jpg');

K11 = imdivide(imadd(I11,I12),4); subplot(3,4,11); imshow(K11);title('四则运算');

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务