图像的代数运算(代码片段)

llurran llurran     2023-01-30     353

关键词:

一.加法运算

1.加法运算的定义

2.主要应用举例

①去除叠加性噪声
对于原图像f(x,y),有一个噪声图像集:

其中:

假设噪声h(x,y)均值为0,且互不相关,N个图像的均值定义为:

期望值:

·改变图像均值将降低噪声的影响。

②生成图像叠加效果

其中:

·可以得到各种图像合成的效果,也可以用于两张图片的衔接。

3.各种噪声说明

①加性噪声
加性噪声和图像信号强度不相关。

②乘性噪声
乘性噪声和图像信号是相关的。

③椒盐噪声
黑图像上的白点,白图像上的黑点。
④量化噪声
是由量化过程引起的,解决的最好方法是最佳量化。

4.C++代码

/*加法*/
for (int i = 0; i < src.rows; i++)

	for (int j = 0; j < src.cols; j++)
	
		/*叠加特效*/
		dst1_0.at<Vec3b>(i, j)[0] = 0.8 * src.at<Vec3b>(i, j)[0] + 0.2 * src1.at<Vec3b>(i, j)[0];
		dst1_0.at<Vec3b>(i, j)[1] = 0.8 * src.at<Vec3b>(i, j)[1] + 0.2 * src1.at<Vec3b>(i, j)[1];
		dst1_0.at<Vec3b>(i, j)[2] = 0.8 * src.at<Vec3b>(i, j)[2] + 0.2 * src1.at<Vec3b>(i, j)[2];
		/*去除椒盐噪声*/
		dst1_1.at<Vec3b>(i, j)[0] = 0.5 * src.at<Vec3b>(i, j)[0] + 0.5 * noise_saltpepper.at<Vec3b>(i, j)[0];
		dst1_1.at<Vec3b>(i, j)[1] = 0.5 * src.at<Vec3b>(i, j)[1] + 0.5 * noise_saltpepper.at<Vec3b>(i, j)[1];
		dst1_1.at<Vec3b>(i, j)[2] = 0.5 * src.at<Vec3b>(i, j)[2] + 0.5 * noise_saltpepper.at<Vec3b>(i, j)[2];
	

效果图:

二.减法运算

1.减法运算的定义

2.主要应用举例

①显示两幅图像的差异,检测同一场景两幅图像之间的变化。

②去除不需要的叠加性图案。
设图像背景b(x,y),前景背景混合图像f(x,y),g(x,y)为去除了背景的图像。


③图像分割:如分割运动的车辆,减法去掉静止部分,剩余的是运动元素和噪声。

for (int i = 0; i < src.rows; i++)
	
		for (int j = 0; j < src.cols; j++)
		
			/*叠加特效*/
			dst2.at<Vec3b>(i, j)[0] = dst1_0.at<Vec3b>(i, j)[0] - 0.2 * src1.at<Vec3b>(i, j)[0];
			dst2.at<Vec3b>(i, j)[1] = dst1_0.at<Vec3b>(i, j)[1] - 0.2 * src1.at<Vec3b>(i, j)[1];
			dst2.at<Vec3b>(i, j)[2] = dst1_0.at<Vec3b>(i, j)[2] - 0.2 * src1.at<Vec3b>(i, j)[2];
		
	

效果图:

三.乘法运算

1.乘法运算的定义

2.主要应用举例

图像的局部显示,用二值蒙版图像与原图像做乘法。

四.与运算

1.与运算的定义

2.主要应用举例

①求两个子图像的相交子图

②模板运算:提取感兴趣的子图像

五.非运算

1.非的定义

2.主要应用举例

①获得一个阴图像。
②获得一个子图像的补图像。

3.C++代码

/*非运算*/
for (int i = 0; i < src.rows; i++)

	for (int j = 0; j < src.cols; j++)
	
		dst3.at<Vec3b>(i, j)[0] = 255 - src.at<Vec3b>(i, j)[0];
		dst3.at<Vec3b>(i, j)[1] = 255 - src.at<Vec3b>(i, j)[1];
		dst3.at<Vec3b>(i, j)[2] = 255 - src.at<Vec3b>(i, j)[2];
	

六.或运算

1.或的定义

2.主要应用举例

①合并子图像

②模板运算
提取感兴趣的子图像。

七.异或运算

1.异或的定义

2.主要应用举例

①获得相交子图像

[python系列-14]:人工智能-数学基础-4-数组元素的线性代数运算(向量矩阵运算)(代码片段)

...://blog.csdn.net/HiWangWenBing/article/details/119301224目录第1章线性代数运算概述1.1什么是线性代数1.2线性代数运算1.3线性代数与深度智能的关系第2章向量与矩阵的定义2.1什么是向量2.2 查看详情

仅使用线性代数执行训练的张量流模型(代码片段)

我按照以下方式训练图像分类模型:https://www.tensorflow.org/tutorials/image_recognition我的目标是提取学习的权重值(基于:Extractingweightsvaluesfromatensorflowmodelcheckpoint)并仅使用线性代数运算执行模型。函数defrun_inference_on_image(image)(srcht... 查看详情

python之numpy:线性代数/矩阵运算(代码片段)

一要点假定AX=b,求解未知矩阵X【线性代数中常遇到的运算问题】矩阵转置A^(T)矩阵的逆A^(-1)矩阵行列式的值|A|矩阵的秩rank(A)矩阵的迹trace(A)其它单位矩阵0向量/矩阵...二示例源码2.1求解AX=b中的未知参数矩阵Ximportnumpyasnp#Hypothsis:A*... 查看详情

python---numpy模块中线性代数运算,统计和数学函数(代码片段)

NUMPY告一段落,接下来,进入pandas.importnumpyasnp#Numpy线性代数运算#Numpy统计和数学函数print(‘==========计算矩阵与其转置矩阵的内积。===========‘)X=np.arange(15).reshape((3,5))print(X)print(X.T)print(np.dot(X.T,X))print(‘==========计算两个一维数组 查看详情

图像处理中的线性代数知识及c/c++实现(代码片段)

...列式三、矩阵乘法四、矩阵求逆五、解方程    在数字图像处理中我们是离不开线性代数的,了解线性代数基础知识又会有助于我们对图像处理算法的理解和实现。数字图像实质上就是二维的数字矩阵,对图像的操作&#x... 查看详情

深度学习之线性代数(代码片段)

这里主要介绍一些张量的计算,如求和,转置等标量运算importtorchx=torch.tensor(3.0)y=torch.tensor(4.0)print(x*y,x+y,x-y,x**y,x/y)#这种单一元素(标量)可以进行各种四则运算等print(x.shape)矩阵转置importtorchx=torch.arange(20) 查看详情

pythonsympy做代数运算解cholesky求逆的l和l逆矩阵示例(代码片段)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章结构sympy包问题一、代码二、运行结果总结sympy包问题在1.6.x的包中发现用“fromsympyimport*"遇上频繁的Warning问题?解决方法:shellpo... 查看详情

旗帜识别基于matlabgui旗帜识别含matlab源码1383期(代码片段)

一、数字图像处理简介图像处理基础教程链接1【基础教程】基于matlab图像处理(表示方法+数据结构+基本格式+类型转换+读取+点运算+代数运算)【含Matlab源码834期】2【基础教程】基于matlab图像处理(读写+显示+运算+转换+变换+... 查看详情

动手学深度学习v2学习笔记02:线性代数矩阵计算自动求导(代码片段)

前文回顾:数据操作、数据预处理文章目录一、线性代数实现1.1标量和向量1.2矩阵和多维张量1.3张量的运算1.3.1基础运算1.3.2按特定轴运算1.3.3乘积运算1.3.4范数二、矩阵计算2.1标量导数2.2向量导数2.2.1标量-向量求导2.2.2向量-... 查看详情

如何使用opencv作图像或矩阵的逻辑运算(代码片段)

...、逻辑非运算、逻辑异或运算。可用函数bitwise_and()实现图像或矩阵的逻辑与运算;可用函数bitwise_or()实现图像或矩阵的逻辑或运算;可用函数bitwise_not()实现图像或矩阵的逻辑非运算;可用函数bitwise_xor()实现图像或矩... 查看详情

opencv实战——图像运算详解(代码片段)

OpenCV实战(5)——图像运算详解0.前言1.图像基本运算2.重载图像运算符2.1加法运算符重载2.2分割图像通道2.3完整代码3.图像重映射3.1OpenCV重映射函数3.2完整代码小结系列链接0.前言图像可以以不同的方式进行组合,因... 查看详情

python-图像上的算术运算(代码片段)

图像加法你可以使用函数cv2.add()将两幅图像进行加法运算,当然也可以直接使用numpy,res=img1+img。两幅图像的大小,类型必须一致,或者第二个图像可以使一个简单的标量值。importnumpyasnpimportcv2frommatplotlibimportpyplotaspltimportmatplotli... 查看详情

scala的矩阵运算(代码片段)

本文讲解Scala中进行矩阵运算的包breeze的一些基础操作。Breeze是Scala中用于线性代数相关数值运算的开源库。安装首先我们使用SBT导入:libraryDependencies++=Seq(//Laststablerelease"org.scalanlp"%%"breeze"%"0.13.2",// 查看详情

跟我学python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算(代码片段)

摘要:本篇文章结合灰度三维图像讲解图像顶帽运算和图像黑猫运算,通过Python调用OpenCV函数实现。本文分享自华为云社区《[Python图像处理]十三.基于灰度三维图的图像顶帽运算和黑帽运算》,作者:eastmount。本... 查看详情

python计算机视觉——opencv进行图像算数与逻辑运算(代码片段)

目录1.图像加法运算(1)随机生成灰度图像(2)读取原始图像(3)两图像相加(4)图像像素点加常数2.图像减法运算(1)减小亮度(2)还原添加灰度图像的图像 3.图像与运算4.图... 查看详情

学习numpy全套代码超详细基本操作数据类型数组运算复制和试图索引切片和迭代形状操作通用函数线性代数(代码片段)

大家好,我又来给大家分享新知识了,最近几篇博客(文末有链接)都致力于将以前的学习资源整理成博客的形式分享给大家,真心干货满满,希望能给大家带来收获。那么本篇博客将会给出大家平时使用... 查看详情

关系代数演算soeasy

关系代数运算SoEasy关系代数是以关系为运算的一组高级运算的集合。由于定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数也可以看做是一种抽象的查询语言,是对关系的运算来表达查... 查看详情

opencv函数学习13-图像的加法运算(cv2.add)(代码片段)

13.图像的加法运算(cv2.add)函数cv2.add()用于图像的加法运算。函数说明:cv2.add(src1,src2[,dst[,mask[,dtype]])→dst函数cv2.add()对两张相同大小和类型的图像进行加法运算,或对一张图像与一个标量进行加法运算。两张图... 查看详情