python_Opencv_图像上的算术运算

图像加法



cv2和numpy中都提供了图像相加的实现,你可以使用函数cv2.add() 将两幅图像进行加法运算,当然也可以直接使
用numpy,res=img1+img。两幅图像的大小,类型必须一致,或者第二个图像可以使一个简单的标量值。

但是二者实现有些不同,如下一个例子:

 1 # -*- coding: utf-8 -*-
 2
 3 # 图像加法,比较numpy中和cv2中两种不同加法运算
 4
 5 import cv2
 6 import numpy as np
 7
 8 x = np.uint8([250])
 9 y = np.uint8([10])
10 print cv2.add(x,y) # 250+10 = 260 => 255
11 #cv2结果: [[255]]
12 print x+y # 250+10 = 260 % 256 = 4
13 #numpy结果: [4]

因此,需要说明一下。

OpenCV 中的加法与Numpy 的加法的不同点在于:OpenCV 的加法是一种饱和操作,而Numpy 的加法是一种模操作。

这种差别在你对两幅图像进行加法时会更加明显。OpenCV 的结果会更好一点。所以我们尽量使用OpenCV 中的函数。

图像混合



这其实也是加法,但是不同的是两幅图像的权重不同,这就会给人一种混合或者透明的感觉。

图像混合的计算公式如下:

通过修改的值(0 -->1),可以实现非常酷的混合。现在我们把两幅图混合在一起。

第一幅图的权重是0.7,第二幅图的权重是0.3。函数cv2.addWeighted() 可以按下面的公式对图片进行混合操作。

这里r的取值为0。

时间: 2024-10-13 22:45:30

python_Opencv_图像上的算术运算的相关文章

图像上对的算术运算

1.图像加法 可以用函数cv2.add()将两幅图像进行加法运算,当然也可以直接使用numpy. res=img1+img2.两幅图像的大小,类型必须一致,或者第二个,图像可以使一个简单的标量值. 注意:OpenCV 中的加法与 Numpy 的加法是有所不同的.OpenCV 的加法 是一种饱和操作,而 Numpy 的加法是一种模操作. x = np.uint8([250]) y = np.uint8([10]) print cv2.add(x,y) # 250+10 = 260 => 255 [

c# PictureBox 的图像上使用鼠标画矩形框

C# 中在图像上画框,通过鼠标来实现主要有四个消息响应函数MouseDown, MouseMove, MouseUp, Paint重绘函数实现.当鼠标键按下时开始画框,鼠标键抬起时画框结束. Point start; //画框的起始点 Point end,//画框的结束点bool blnDraw;//判断是否绘制Rectangel rect; 鼠标按下响应 private void PictureBox1_MouseDown(object sender, MouseEventArgs e) {

[图像]用Matlab在图像上画矩形框

原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/46819527 在毕业设计的时候写论文画图,要在一个图像上精确的标记出要处理的区域,用Photoshop或是其他绘图软件难免不精确,而且也不符合懒人思维(以后怎么办,要一劳永逸,嘿嘿),所以就自己写软件吧. 编程思想和注意事项 其实程序的思路很简单,就是在局域外面像素的值(颜色)覆盖掉就行了,但是要注意几点内容. 原图像通道问题(边框颜色问

opencv_将图像上的4个点按逆时针排序

1:代码如下: #include "stdafx.h" #include "cxcore.h" #include "cvcam.h" #include "windows.h" #include "cv.h" #include "highgui.h" #include "iostream" using namespace std; CvMat* RankPoint(Cv

PHP 使用GD库生成验证码 在图像上绘制汉字

PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像. 更加方便的是,PHP 可以直接将图像数据流输出到浏览器. 要想在 PHP 中使用图像处理功能,你需要连带 GD 库一起来编译 PHP. GD 库和 PHP 可能需要其他的库, 这取决于你要处理的图像格式. 你可以使用 PHP 中的图像函数来获取下列格式图像的大小: JPEG, GIF, PNG, SWF, TIFF 和 JPEG2000.如果联合 ex

OpenCV之响应鼠标(四):在图像上绘制出矩形并标出起点的坐标

涉及到两方面的内容:1. 用鼠标画出矩形.2.在图像上绘制出点的坐标 用鼠标绘制矩形,涉及到鼠标的操作,opencv中有鼠标事件的介绍.需要用到两个函数:回调函数CvMouseCallback和注册回调函数cvSetMouseCallback. 当回调函数被调用时,opencv会传入合适的值,当鼠标有动作时,有所反应,比如画线,描点. void CvMouseCallback(int event,int x,int y,int flags,void * param); event 为鼠标事件类型

【练习4.1】图像转换、Canny检测、图像合并、在图像上输出文字

2014-07-17 第四章 细说HighGUI 练习题第1题 题目大致要求: a:(1)从视频文件读入数据,(2)转换为灰度图,(3)做Canny边缘检测,显示在三个窗口 b:将a的三个视频显示在一个窗口中 c:在b步骤的不同部分写上合适的文字标签 代码: 1 #include "stdafx.h" 2 #include <windows.system.h> 3 #include <iostream> 4 #include <cv.h> 5 #in

C#图像处理(3):在图像上加条形码

引入Aspose.BarCode用来生成条形码,方法如下: 1 /// <summary> 2 /// 生成条码 3 /// </summary> 4 /// <param name="CodeString">生成条码的字符串</param> 5 /// <param name="Path">条码保存的路径</param> 6 /// <returns>条码保存的路径</ret

图像上采样和图像下采样

#1. 图像下采样和上采样的概念#无论是图像的上采样还是下采样都可以使用matlab中的imresize函数来实现,而这些操作在使用到图像金字塔的算法中,必然是不可或缺的操作步骤.需要指出的是,当我们对一幅图像先下采样再上采样回原尺寸,得到的结果就是原图像的低频成分了.下面简要介绍2者的概念. 1.1 图像下采样 图像下采样(subsampled)可以通俗地理解成缩小图像,又称为降采样(downsampled).其目的有两个:1)使得图像符合显示区域的大小:2)生成对应图像的缩略图.##1.2