python opencv 图像按位操作
来源:互联网 发布:java spring框架详解 编辑:程序博客网 时间:2024/05/27 19:26
13-python opencv 图像按位操作
- 13-python opencv 图像按位操作
- 概述
- 实现过程
- 引用与读取图片
- 获取mask
- 根据logo大小提取感兴趣区域
- 将logo加到感兴趣区域
- 显示图片
- 源代码
- 运行结果
- 参考
概述
本节实现的是使用OpenCV里自带的函数,将一幅logo加到一张图片上去。
- 提取mask
- 利用mask生成带logo图片
实现过程
引用与读取图片
不再赘述,代码如下。
import cv2import numpy as npimg = cv2.imread('test.png')logo = cv2.imread('logo.jpg')cv2.imshow("Img_Original", img)
获取mask
先将logo转成黑白,然后设置合适的阈值二值化,使得有内容的部分为黑(0),无内容的部分为白(255),这里使用的阈值为205。
logo_gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)# binary & maskret, mask = cv2.threshold(logo_gray, 205, 255, cv2.THRESH_BINARY)
根据logo大小提取感兴趣区域
获取logo大小,在图像的左上角提取同样大小的ROI。
rows, cols, channels = logo.shaperoi = img[0:rows, 0:cols]
将logo加到感兴趣区域
如果mask部分为黑,则将ROI的这部分用logo的内容替换,否则保留其原先内容。
# dstdst = roifor r in range(rows): for c in range(cols): if mask[r, c] == 0: dst[r, c, :] = logo[r, c, :]# add the dst to the imgimg[0:rows, 0:cols] = dst
显示图片
cv2.imshow("Color Logo", logo)cv2.imshow("Gray Logo", logo_gray)cv2.imshow("Mask", mask)cv2.imshow("Dst", dst)cv2.imshow("Img", img)cv2.waitKey(0)cv2.destroyAllWindows()
源代码
整个程序的源代码如下:
# created by Huang Lu# 28/08/2016 13:55:37 # Department of EE, Tsinghua Univ.import cv2import numpy as npimg = cv2.imread('test.png')logo = cv2.imread('logo.jpg')cv2.imshow("Img_Original", img)logo_gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)rows, cols, channels = logo.shaperoi = img[0:rows, 0:cols]# binary & maskret, mask = cv2.threshold(logo_gray, 205, 255, cv2.THRESH_BINARY)# dstdst = roifor r in range(rows): for c in range(cols): if mask[r, c] == 0: dst[r, c, :] = logo[r, c, :]# add the dst to the imgimg[0:rows, 0:cols] = dstcv2.imshow("Color Logo", logo)cv2.imshow("Gray Logo", logo_gray)cv2.imshow("Mask", mask)cv2.imshow("Dst", dst)cv2.imshow("Img", img)cv2.waitKey(0)cv2.destroyAllWindows()
也可以参考我的GitHub上的,点击这里。
运行结果
在命令行进入该源程序所在目录后,运行python main.py
后即可显示结果。显示结果如下:
参考
- OpenCV-Python-Toturial-中文版.pdf
- https://github.com/hlthu/Python/tree/master/Python_OpenCV/Bit_Operation/
- http://hlthu.github.io/blogs/PythonOpenCV/13-Bit_Operation.html
0 0
- python opencv 图像按位操作
- python,opencv切割图像操作
- python+opencv操作图像视频
- python-opencv:图像的位运算
- python+opencv实操-图像基本操作
- Python-OpenCV图像像素点操作
- Python-OpenCV 处理图像基本操作
- opencv-python(5):图像基本操作
- python opencv的视频与图像操作
- OpenCv-Python 图像处理基本操作
- Python-OpenCV 处理图像(三):图像像素点操作
- Python-OpenCV 处理图像(三):图像像素点操作
- Python-OpenCV 处理图像(三):图像像素点操作
- Opencv(Python) 教程-常用opencv 图像/视频操作函数
- OpenCV-Python[第三章]——位操作
- Python-OpenCV 处理图像(一):基本操作
- Python-OpenCV 处理图像(一):基本操作
- Python下使用OpenCV——图像的基本操作
- dlib编译出错以及解决方法
- [PAT] B1013
- 剑指offer(41-50)
- 欢迎使用CSDN-markdown编辑器
- [leetcode]167. Two Sum II - Input array is sorted
- python opencv 图像按位操作
- java并发你必须会的编程
- 1029. Median (25)
- 《JQuery基础教程》第四版课后练习代码--第六章
- 精确记算程序的运行时间或者某段代码的运行时间
- Jenkins在windows上安装
- android realm数据库基本使用
- Efficient Gradient-domain Compositing
- tcp sever