opencv-python教程学习系列8-opencv图像算术运算
前言
opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的算术运算,坚持学习,共同进步。
系列教程参照OpenCV-Python中文教程;
系统环境
系统:win7_x64;
python版本:python3.5.2;
opencv版本:opencv3.3.1;
内容安排
1.知识点介绍;
2.测试代码;
具体内容
1.知识点介绍;
使用cv2/numpy的库函数,涉及函数有cv2.add() 、cv2.addWeighted(),内容有图像加法、图像混合和按位运算;
1.1 图像加法;
使用cv2.add()将两幅图像进行加法运算,也可以直接使用numpy,两幅图像的大小,类型必须一致,或者第二个图像可以是一个简单的标量值。
openCV的加法是一种饱和操作,而numpy的加法是一种模操作。OpenCV的结果会更好,so尽量使用OpenCV中的函数;
x=np.uint8([250])
y=np.uint8([10])
print(cv2.add(x,y))#250+10=260>=255
#结果为[[255]]
print (x+y)#250+10=260%255=4
#结果为[4]
1.2 图像混合
这也是加法,不同的是两幅图像的权重不同,这会给人一种混合或者透明的感觉。图像混合的计算公式如下:
g(x) = (1−α)f0 (x)+αf1 (x),通过修改α的值(0-->1),可以实现很酷的混合。dst = α·img1 + β·img2+γ;
dst = cv2.addWeighted(img1,0.7,img2,0.3,0)
1.3 按位运算,包括按位操作有:AND,OR,NOT,XOR等,当我们提取图像的一部分,选择非矩形ROI时,会很有用;
mask_inv = cv2.bitwise_not(mask)
img1_bg = cv2.bitwise_and(roi,roi,mask=mask)
2.测试代码;
import cv2
import numpy as np
#图像加法
x=np.uint8([250])
y=np.uint8([10])
print(cv2.add(x,y))#250+10=260>=255#.两幅图像的大小,类型必须一致,或者第二个图像可以是一个简单的标量值。
#结果为[[255]]
print (x+y)#250+10=260%255=4
#结果为[4]#图像混合
img1=cv2.imread('test.jpg')
logo = cv2.imread('logo.jpg')
img2=cv2.resize(logo, (50, 50))#dst = cv2.addWeighted(img1,0.7,img2,0.3,0)#.两幅图像的大小,类型必须一致,或者第二个图像可以是一个简单的标量值。#cv2.imshow('dst',dst)
#cv2.waitKey(0)
#cv2.destroyAllWindows()#按位运算
# I want to put logo on top-left corner, So I create a ROI
rows,cols,channels = img2.shape
roi = img1[0:rows,0:cols]# Now create a mask of logo and create its inverse mask also
img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)#灰度化
ret,mask = cv2.threshold(img2gray,175,255,cv2.THRESH_BINARY)#二值化
mask_inv = cv2.bitwise_not(mask)#取非# Now black-out the area of logo in ROI
#取ROI中与mask中不为零的值对应的像素的值,让其值为0 。
#注意这里必须有mask=mask或者mask=mask_inv,其中mask=不能忽略
img1_bg = cv2.bitwise_and(roi,roi,mask=mask)
#取roi中与mask_inv中不为零的值对应的像素的值,其他值为0
# Take only region of logo from logo image.
img2_fg = cv2.bitwise_and(img2,img2,mask=mask_inv)# Put logo in ROI and modify the main image
dst = cv2.add(img1_bg,img2_fg)
cv2.imshow('dst', dst)
img1[0:rows,0:cols] =dstcv2.imshow('res',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
测试结果显示
参考
1.opencv图像算术运算;
完
转载于:https://www.cnblogs.com/happyamyhope/p/8126061.html
opencv-python教程学习系列8-opencv图像算术运算相关推荐
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
OpenCV Python教程之图像元素的访问.通道分离与合并 转载请详细注明原作者及出处,谢谢! 访问像素 像素的访问和访问numpy中ndarray的方法完全一样,灰度图为: [python] v ...
- opencv-python教程学习系列2-读取/显示/保存图像
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的读取.显示以及保存,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: ...
- python 几何教学_opencv-python教程学习系列11-几何变换
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍几何变换,坚持学习,共同进步. 系统环境 系统:win7_x64; python版本:python ...
- python鼠标点击事件event_opencv-python教程学习系列5-处理鼠标事件
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系统环境 系统:win_x64; p ...
- 转载:【OpenCV入门教程之四】 ROI区域图像叠加初级图像混合 全剖析
[OpenCV入门教程之四] ROI区域图像叠加&初级图像混合 全剖析 浅墨_毛星云 2014-03-10 12:48:05 157425 收藏 19 最后发布:2014-03-10 12:4 ...
- OpenCV Python教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内
OpenCV Python教程(3.直方图的计算与显示) 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途 ...
- 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...
- 【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...
- Python爬虫学习系列教程
大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫 ...
最新文章
- 懂你的里程银行,大数据为川航提升用户时代的流量变现力
- pycharm 快捷键2
- java技术栈_七天串起java技术栈-开篇
- oracle中对排序的总结(按照拼音、部首、笔画排序功能 )
- 在手机里输入八卦及64卦符号(老年教程)
- 第十讲 线性反馈移位寄存器
- 都是山寨惹的祸 最邪恶安卓恶意程序肆虐网络
- FlashFXP使用阿里云ECS私钥登录
- 我的世界Minecraft Java开服教程(Windows)开服器开服包下载开服网站服务器开服核心开服端开服软件mac版Java启动器资源包
- 一名优秀的测试工程师,应具备那些能力
- mysql索引失效的几种情况
- 材质允许png格式的图片透明
- 标准声纹采集终端,为声纹库建设提供标准支撑,为声纹鉴定和比对提供坚实的基础!
- 跌破150美元、市值蒸发3600亿美元,这个圣诞节苹果过得“太冷了”!...
- Linux 小程序开发日记(终章)(pyqt+yolov5)
- TOEFL战地手记听力FAQ
- 清除浏览器js和css缓存
- C++用桌面图标系列之三【整理-时钟】
- R语言dplyr包使用group_by函数和summarise函数构建频率表实战
- C:\Windows\system32\config\systemprofile\Desktop不可用,win10
热门文章
- 15、Ordering(排序)
- 实验室摇动培养箱的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 一种Python全局配置规范以及其魔改
- 扎克伯格的政治野心:2017年他想走遍美国52个州
- Yunxion智能定位胸牌为一线记者提供安全保障
- 史上最详细的23中设计模式解析,一个不落,理论搭配简单案例,更好理解哦
- 业余学python大家都是如何赚钱的?
- springboot教室图书馆座位预约小程序毕业设计毕设作品开题报告开题答辩PPT
- 嵌入式项目烂尾的真实原因
- 计算机公式YEAR的含义是,Excel 中函数YEAR是什么意思,year是什么意思怎么读通俗点...