opencv for python (6) 改变一幅图的特定区域 (往一幅图片上加标志)
2017-11-28 23:26
3431 查看
想把oencv的标志放在另一幅图像上,如果使用加法,亚瑟会改变,如果使用混合,会得到透明效果,但是我不行要透明,这时就可以运用按位运算来实现。
import cv2 import numpy as np img1 = cv2.imread('opencv.jpg') #原始图像 img2 = cv2.imread('logo.png') #logo图像,要往原始图像上添加 rows,cols,channels = img2.shape #得到logo的尺寸 roi = img1[0:rows,0:cols ] #在原始图像中截取logo图像大小的部分 img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)#将logo图像灰度化 ret,mask =cv2.threshold(img2gray,200,255,cv2.THRESH_BINARY)#将logo灰度图二值化,将得到的图像赋值给mask,logo部分的值为255,白色 mask_inv = cv2.bitwise_not(mask) #将mask按位取反,即白变黑,黑变白 img1_bg = cv2.bitwise_and(roi,roi,mask = mask)#将原始图像中截取的部分做处理,mask中黑色部分按位与运算,即保留黑色部分,保留除logo位置外的部分 img2_fg = cv2.bitwise_and(img2,img2,mask = mask_inv)#将logo图像中,mask_inv部分按位与运算,即保留黑色部分,保留logo dst = cv2.add(img1_bg,img2_fg) #图像相加 img1[0:rows,0:cols] = dst #图像替换 cv2.imshow('res',img1) cv2.waitKey(0) cv2.destroyAllWindows()
相关文章推荐
- OpenCV for Python [1].图片读入、显示、保存
- OpenCV for Python [2]使用Matplotlib显示图片
- 【Python+OpenCV】图片局部区域像素值处理(改进版)-一种特征提取方法
- matlab/python+opencv提取圆形鱼眼图片的有效区域
- opencv自定义从一幅图片截取特定区域函数cvExtractRegion
- 【Python_Demo_4】 利用OpenCv的ROI区域,将衣服图片切成规则的小图片的python程序
- 【Python+OpenCV】图片局部区域像素值处理
- opencv for python 之 创建图片绘制简单几何图形
- opencv3 for python 之 创建图片绘制简单几何图形
- opencv for python (9) 图片的扩展和缩放 批量处理图片
- python Opencv将图片转为字符画
- python opencv 创建窗口,加载图片,显示图片,灰度转换,保存图片
- 基于python:opencv简单图片操作
- python---统计特定时间发布数量(列表、range、for、元组、字典)
- 【Python_Demo_3】基于Python_OpenCv设置图像的ROI区域
- 用 Python 和 OpenCV 检测图片上的条形码
- C++:C++在图片特定区域之外产生随机数
- OpenCV改变图片的对比度和亮度
- opencv for python 之 突出点检测
- python3-opencv库(3)--图片颜色空间转换,利用HSV进行物体跟踪,图像通道分离与合并