MATLAB中如何实现两帧图片对应像素相加

MATLAB中如何实现两帧图片对应像素相加,第1张

在matlab中画完图,经常希望输出的图像清晰一些,分辨率高一些,以前一直在用file-->save

as-->选择tif格式,然后点击确定。这样输出的图像清晰度是默认的,可能不能满足所需要的清晰度。

要想输出清晰度的图像,步骤如下:

File-->export

setup,显示如下图所示对话框,然后点击Rendering,里面选择resolution,修改为600,点击export,选择输出格式,OK,即可。

I=imread('E:\s2jpg');

J=imread('E:\s1jpg');

K=imadd(I,J,'uint16');

subplot(1,3,1),imshow(I);

subplot(1,3,2),imshow(J);

subplot(1,3,3),imshow(K,[]);

未知你两幅图相加需要什么效果,如果简单相加上述可实现,当然你也可再K=imadd(I,J,'uint16');之后再加上K=uint8(K/2);最后的改回subplot(1,3,3),imshow(K);

水平有限,呵呵!

适于初学者g=imread('HUMANjpg'),s=255-g。

图像反转特别适用于增强嵌入图像暗色区域中的白色或灰色细节,特别是当黑色面积在尺寸上占主导地位时。

s为反转目标图像某点的灰度值,r为原始图像对应点的灰度值,L为灰度级数,对X射线的照片进行反转。

首先,FILES(文件)-》NEW(新建)-》C++Sourse FILE(C++源文件)->建入文件名->OK

然后输入

#include <stdioh>

int main()

{

int a1,a2,a;//申请变量

scanf("%d",&a1);//输入第一个数

scanf("%d",&a2);//输入第二个数

a=a1+a2;//加

printf("%d",a);//输出结果

return 0;

}

按F7编译,再CTRL+F5运行

C++是一种面向对象的计算机程序设计语言,由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“C with Classes”带类的C)。它是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。[1]

C++是C语言的继承,进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。

图像的代数运算是图像之间进行点对点的加法,减法,乘法,除法运算后得到输出图像的过程。图像的代数运算可以认为是数组之间的运算。图像代数运算在图像处理中有广泛的应用,既可以实现图像的简单运算,又可以对图像的复杂处理提供一些准备,本节就图像的代数运算的进行讲解:

imcomplment用于补充一幅图像,其调用格式如下:

J=imcomplement(I);

其中I表示原始图像,J表示求补后的图像

示例:利用imcomplment函数对图像进行求补运算

编写对应的m文件如下:

clear all;

I=imread('cameramantif');

J=imcomplement(I);

subplot(2,2,1)

imshow(I);

title('灰度图原始图像');

subplot(2,2,2)

imshow(J);

title('灰度图求补图像');

I2=imread('pepperspng');

subplot(2,2,3)

imshow(I2);

title('真彩图原始图像');

subplot(2,2,4)

J2=imcomplement(I2);

imshow(J2);

title('真彩图求补图像');

程序运行结果如下图:

imlincomb用于计算两幅图像的线性组合,其调用格式如下:

J=imlincomb(A,I1,B,I2);

A表示第一幅图像的系数,B表示第二幅图像的系数,I1,I2分别表示第一幅原始图像,第二幅原始图像,两幅图像的大小相同,J表示线性组合后图像

示例:用imlincomb函数将图像的灰度放大2倍

编写对应的m文件:

clear all;

I=imread('ricepng');

I2=imread('cameramantif');

J=imlincomb(2,I);

J2=imlincomb(05,I,08,I2);

subplot(2,2,1)

imshow(I);

title('第一幅原始图像');

subplot(2,2,2)

imshow(I2);

title('第二幅原始图像');

subplot(2,2,3)

imshow(J);

title('第一幅放大图像');

subplot(2,2,4)

imshow(J2);

title('第一幅和第二幅图线性组合图像');

程序运行结果如下图:

图像的加法运算

Imadd用于实现图像的相加,该函数的调用格式:

J=imadd(A,B);

J=imadd(A,K);

A,B分别表示原始图像1和原始图像2,J表示相加后的图像,K表示图像亮度增加的倍数

示例:对图像进行加法运算

编写对应的m文件如下:

clear all;

colormap(pink);

I=imread('pepperspng');

I2=imadd(I,50);

subplot(1,2,1)

imshow(I);

title('原始图像');

subplot(1,2,2)

imshow(I2);

title('增强亮度后图像');

程序运行结果如下图:

图像的减法运算

图像的减法运算也称为差分运算,主要用于检测变化与运动的物体,imsubtract函数可以用于实现图像的减法运算,该函数的调用格式如下:

J=imsubtract(A,B);

示例:对图像进行相减运算

编写对应的m文件如下:

clear all;

I=imread('cameramantif');

I2=imopen(I,strel('disk',18));%%得到背景图像%%

I3=imsubtract(I,I2);

subplot(1,3,1)

imshow(I);

title('原始图像');

subplot(1,3,2)

imshow(I2);

title('背景图像');

subplot(1,3,3)

imshow(I3);

title('相减后的图像');

程序运行结果如下图:

图像的乘法运算

图像的乘法运算主要用于实现图像的掩模处理,也就是屏蔽掉图像的某些部分,immultiply函数用于实现两幅图像相乘,该函数的调用格式如下:

J=immultiply(A,B);

A,B分别表示原始图像1和原始图像2,J表示相乘后的图像

示例:对图像进行乘法运算

编写对应的m文件如下:

clear all;

J=imread('eighttif');

J1=immultiply(J,2);%%图像放大%%

J2=immultiply(J,06);%%图像缩小%%

J3=immultiply(uint16(J),uint16(J));%%图像自乘%%

subplot(2,2,1)

imshow(J);

title('原始图像');

subplot(2,2,2)

imshow(J1);

title('放大图像');

subplot(2,2,3)

imshow(J2);

title('缩小图像');

subplot(2,2,4)

imshow(J3);

title('自乘之后图像');

程序运行结果如下图:

图像的除法运算

图像除法运算可用于校正照明不足或这传感器的非线性影响造成的偏差,imdivide函数用于是图像的相除,其调用格式如下:

J=imdivide(A,B),将矩阵A中每一个元素除以矩阵B中的每一个元素,返回值为J

示例:图像的除法运算

编写对应的m文件如下:

clear all;

I=imread('treestif');

I2=imopen(I,strel('disk',18));

I3=imdivide(I,I2);

I4=imdivide(I,08);

subplot(2,2,1)

imshow(I);

title('原始图像');

subplot(2,2,2)

imshow(I2);

title('背景图像');

subplot(2,2,3)

imshow(I3);

title('原始图与背景图相除图像');

subplot(2,2,4)

imshow(I4);

title('原始图与常数相除图像');

程序运行结果如下图:

可以使用imread来直接读取,比如:% By lyqmath

clc; clear all; close all;

I1 = imread('tiretif');

I2 = imread('ricepng');

I2 = imresize(I2, size(I1));

I3 = imadd(I1, I2);

figure;

subplot(1, 3, 1); imshow(I1, []);

title('tiretif By lyqmath', 'FontWeight', 'Bold', 'Color', 'r');

subplot(1, 3, 2); imshow(I2, []);

title('ricepng By lyqmath', 'FontWeight', 'Bold', 'Color', 'r');

subplot(1, 3, 3); imshow(I3, []);

title('求和图像 By lyqmath', 'FontWeight', 'Bold', 'Color', 'r');结果

以上就是关于MATLAB中如何实现两帧图片对应像素相加全部的内容,包括:MATLAB中如何实现两帧图片对应像素相加、matlab中两幅灰度图像相加的问题、怎样利用图像相加减来实现图像对比度翻转等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10219243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存