图像线性点运算---MATLAB

最近学习了用MATLAB来对图像进行简单的线性运算。

首先就是最贱的的关于图像的相加相减,个人认为两张图片的合成真的是P图神技能啊!

两张图片的加法运算

clc;close all;clear all;A=imread(‘couple.bmp‘);B=imread(‘lena.bmp‘);for i=1:1:256    for j=1:1:256        C(i,j)=A(i,j)+B(i,j);    endendsubplot(2,2,1);imshow(A);title(‘comple.bmp‘);subplot(2,2,2);imshow(B);title(‘lena.bmp‘);imwrite(C,‘change.bmp‘);subplot(2,2,3);imshow(C);title(‘相加后‘);

两张图片的减法运算:

clc;close all;clear all;
A=imread(‘change.bmp‘);
B=imread(‘lena.bmp‘);
for i=1:1:256
    for j=1:1:256
        C(i,j)=A(i,j)-B(i,j);
    end
end
imshow(C);

不管是图像的加法运算还是图像的减法运算都要注意两张图片的大小要保持一致,不然程序可能报错,或者像我这样为了将就小图片,较小的图像只与较大图像的一部分合成了

除此之外,还可以利用图像的加法运算去除图像的叠加性随机噪声

去除叠加性随机噪声的第一步当然是先生成若干张带噪声的图啦,我们老师的要求是要利用randn()函数为图像添加高斯白噪声,

于是我就只能百度一下rendn()是个啥了

百度百科上说randn的功能是产生标准正态分布的随机数或矩阵的函数,不过我觉得我不是太能体会这句话的意思,悟性太低了QAQ。。。

不过我的习惯就是多试试,或许试着试着就懂了呢

下面是我的代码

clc;close all;clear all;
A=imread(‘lena.bmp‘);
A1=im2double(A);
 for i=1:1:100 %产生100张带随机噪声的图像
        C(:,:,i)=0.1*randn(512);  %获得随机噪声
        B(:,:,i)=C(:,:,i)+A1; %将噪声混入原图像
 end
 K=B(:,:,1);
for i=2:100
     K=K+B(:,:,i);    %将获得的100张带噪图像相加
 end
 KK=K/100;  %均值图像
 subplot(2,2,1);imshow(A);title(‘原图‘);
 subplot(2,2,2);imshow(B(:,:,1));title(‘带噪声图之一‘);
 subplot(2,2,3);imshow(KK);title(‘去噪后‘);

运行结果

在编写这个程序的过程中,我遇到的最大障碍就是没有深刻理解用加法运算去噪声的原理,以至于我自己在哪里纠结了半天,最终在彻底明白是怎么一回事后才完成了代码,

总之,我觉得这是对我上课不认真听讲的乘法,不开心= =

关于用加法运算去除叠加性随机噪声的原理(随便找的。。)

时间: 2024-12-19 05:42:18

图像线性点运算---MATLAB的相关文章

OpenCV笔记(四)——两幅图像线性混合、改变图像的亮度和对比度

一.两幅图像线性混合 线性混合,就是g(x) = a*f1(x) + b*f2(x).其中g为输出,f1.f2为输入.a+b=1. 作用1:线性混合可以用于去噪,假设噪声的产生符合均值为零.标准差的独立分布.多个高斯分布求平均值,即可去除噪声. 作用2:用于两张图片的切换.a从大到小变化,b从小到大变化.g就渐渐从f1变到f2. OpenCV提供了addWeighted函数,完成上述功能: C++: void addWeighted(InputArray src1, double alpha,

图像小波变换原理_图像小波变换的matlab实现详解

小波变换的原理 所谓的小波的小是针对傅里叶波而言,傅里叶波指的是在时域空间无穷震荡的正弦(或余弦波). 相对而言,小波指的是一种能量在时域非常集中的波,它的能量有限,都集中在某一点附近,而且积分的值为零,这说明它与傅里叶波一样是正交波. 举一些小波的例子: 可以看到,能量集中在x轴0值附近,以y轴的0值为基线,上下两个区域的波形面积相等. 众所周知,图像的傅里叶变换是将图像信号分解为各种不同频率的正弦波.同样,小波变换是将图像信号分解为由原始小波位移和缩放之后的一组小波. 小波在图像处理里被称为

图像的线性空间滤波matlab实现

1.线性空间滤波函数Z = imfilter(X,H,option1,option2,...) X为输入图像矩阵,H为m*n维的掩膜矩阵,H中的数据类型必须是double类型.掩膜矩阵可以是用户定义,也可以是系统定义好的.返回矩阵Z和X有相同的数据结构和数据类型. 整个函数处理的中间过程都会使用double类型,所以不必担心中间结果的精度. 2.获取系统掩膜函数H=fspecial(type,parameters) type为字符串,制定了掩膜类型.如'average'表示均值掩膜.H为返回的掩

图像的点运算

对于一个数字图像处理系统来说, 一般可以将处理流程分为3个阶段.在获取原始图像 后, 首先是图像预处理阶段, 其次是特征抽取阶段,最后才是识别分析阶段.预处理阶段尤 为重要, 这个阶段处理不好则直接导致后面的工作无法展开. 点运算指的是对图像中的每个像素依次进行同样的灰度变换运算.设r和s分别是输入 图像f(x,y)和输出图像g(x,y)在任一点(x,y)的灰度值,则点运算可以使用下式定义 s=T(r) 其中, T为采用的点运算算子, 表示在原始图像和输出图像之间的某种灰度级映射 关系. 点运算

图像的点运算----底层代码与Halcon库函数

最基本的图像分析工具----灰度直方图.使用直方图辅助,可以实现4大灰度变换,包括线性灰度变换(灰度拉伸).灰度对数变换.灰度伽马变换.灰度分段线性变换:使用直方图修正技术,可以实现2大变换,包括直方图均衡化和直方图规定化. 一.灰度直方图 灰度直方图分为一般灰度直方图和归一化灰度直方图,灰度直方图统计图像中各个灰度级出现的次数,而归一化的灰度直方图统计的是各个灰度级出现的频率.因此,灰度直方图通常在定量上,有总体像素个数以及各个灰度像素个数:在定性上,可以看出整体灰度动态范围,即对比度与亮度.

边缘检测算子和小波变换提取图像边缘【matlab】

Roberts边缘检测算子:根据一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差. 小波变换的方法比较适用于展现夹带在正常信号中的瞬间反常现象,具有方向敏感性.所以可以边缘检测. Roberts边缘检测算子: clear; I=imread('D:\文件及下载相关\图片\gray2.png'); I=rgb2gray(I); grayPic=mat2gray(I); [m,n]=size(grayPic); newGrayPic=grayPic; robertsNum=

图像欧拉数计算 matlab实现

EUL = C - H 其中EUL表示欧拉数  C表示对象数 H表示孔洞数 欧拉数常用来识别数字: 识别数字 8 ,8 的欧拉数为 -1 ,不同于0,1,2,3,4,5,6,7,9 close all;clear all;clc; % 识别数字8 I = imread('8.jpg'); K = im2bw(I); J = ~K; %图像取反 EUL = bweuler(J); figure; subplot(131);imshow(I); subplot(132);imshow(K); sub

【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理具体解释

本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行解说.主要通过MFC单文档视图实现显示BMP图片点运算处理.包含图像灰度线性变换.灰度非线性变换.图像阈值化处理.图像均衡化处理等知识,并结合前一篇论文灰度直方图进行展示 .同一时候文章比較具体基础,希望该篇文章对你有所帮助,尤其是刚開始学习的人和学习图像处理的学生. [数字图像处理]一.MFC具体解释显示BMP格式图片 [数字图像处理]二.MFC单文档切割窗体显示图片 [数字图像处理]

matlab图像基础知识

1.MATLAB支持的几种图像文件格式: ⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式. ⑵BMP(Windows Bitmap):有1位.4位.8位.24位非压缩图像,8位RLE(Run length Encoded)的图像.文件内容包括文件头(一个BITMAP FILEHEADER数据结构).位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜色表)和图像数据. ⑶PCX(Windows Paintbru