码迷,mamicode.com
首页 > 编程语言 > 详细

python_Opencv_图像上的算术运算

时间:2016-09-17 19:18:21      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

图像加法


 

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]
View Code

因此,需要说明一下。

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

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

 

图像混合


 

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

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

技术分享

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

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

技术分享

这里r的取值为0。

 

python_Opencv_图像上的算术运算

标签:

原文地址:http://www.cnblogs.com/jerrybaby/p/5879289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!