`

OpenCV学习笔记4:核心操作 -- 算数运算

阅读更多

直接上代码,内有注释:

 

import cv2

'''
图像的算数运算
'''
img1 = cv2.imread('messi.jpg')
img2 = cv2.imread('opencv_logo.jpg')
img3 = cv2.imread('robot.jpg')

#Image Add
#图像相加
addedImage = cv2.add(img2, img3)
cv2.imshow('Added', addedImage)
cv2.imwrite('Added.jpg', addedImage)

#Image Blending
#图像混合,size必须相同
blending = cv2.addWeighted(img3, 0.8, img2, 0.2, 0)
cv2.imshow('Blending', blending)
cv2.imwrite('Blending.jpg', blending)

#Image bitwise
# 图像的位运算
# 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 invers mask also
#灰度化
#灰度图:就是图像的颜色由黑(0)到白(255)的颜色组成,中间是灰色。类似于黑白照片的效果。
img2gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 对灰度图进行阙值处理
#像素的颜色值〉200是,设为255(白色),其他则设为0(黑色) =〉黑白图
ret, mask = cv2.threshold(img2gray, 200, 255, cv2.THRESH_BINARY)
#取反,跟mask的黑白色转换
mask_inv = cv2.bitwise_not(mask)

#Now black-out the area of logo in roi
#当mask像素的色值不为0时,roi[i] ^ roi [i];mask像素的色值为0时,则输出0。
#所以表现为在roi上加上mask的黑色部分
img1_bg = cv2.bitwise_and(roi, roi, mask = mask)
#同理,得出在img2上把白色部分变成黑色的图像
img2_fg = cv2.bitwise_and(img2, img2, mask = mask_inv)

#把logo的非白部分加到ROI里
bitwise = cv2.add(img1_bg, img2_fg)
#替换ROI
img1[0:rows, 0:cols] = bitwise
cv2.imshow('img2gray', img2gray)
cv2.imshow('mask', mask)
cv2.imshow('mask_inv', mask_inv)
cv2.imshow('img1_bg', img1_bg)
cv2.imshow('img2_fg', img2_fg)
cv2.imshow('BitWise-ROI', bitwise)
cv2.imshow('BitWise-Result', img1)

cv2.imwrite('img2gray.jpg', img2gray)
cv2.imwrite('mask.jpg', mask)
cv2.imwrite('mask_inv.jpg', mask_inv)
cv2.imwrite('img1_bg.jpg', img1_bg)
cv2.imwrite('img2_fg.jpg', img2_fg)
cv2.imwrite('BitWise-ROI.jpg', bitwise)
cv2.imwrite('BitWise-Result.jpg', img1)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

-----原图

1.messi



 

2.opencv-logo



 

3.robot



 

-----处理结果

1.图像相加



 

2.图像混合



 

 

3.图像位运算

3-1.灰度图



 

3-2.mask



 

3-3.mask取反



 

3-4.img1_bg



 

3-5.img2_fg



 

3-6.ROI位运算



 

3-7.最终结果



 

 

 

参照:

1.http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_core/py_image_arithmetics/py_image_arithmetics.html#image-arithmetics

2.https://docs.opencv.org/2.4.13.5/modules/core/doc/operations_on_arrays.html#bitwise-and

 

  • 大小: 20.9 KB
  • 大小: 168.5 KB
  • 大小: 52.5 KB
  • 大小: 20.9 KB
  • 大小: 168.5 KB
  • 大小: 35.2 KB
  • 大小: 45 KB
  • 大小: 26 KB
  • 大小: 20 KB
  • 大小: 23.4 KB
  • 大小: 23.4 KB
  • 大小: 113.6 KB
  • 大小: 14.5 KB
  • 大小: 17.1 KB
分享到:
评论

相关推荐

    opencv-4.5.1-1.5.5-API文档-中文版.zip

    赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...

    opencv-4.5.5-1.5.7-API文档-中文版.zip

    赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...

    opencv-4.5.5-1.5.7-API文档-中英对照版.zip

    赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...

    OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib-32bit.zip

    这个压缩包"OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib-32bit.zip"是专为在Windows环境下使用MinGW编译器进行C++开发而准备的。MinGW(Minimalist GNU for Windows)是一个小型的GNU开发工具集,它提供了一个不...

    OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib.zip

    OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib

    OpenCV-MinGW-Build-OpenCV-4.5.2-x64.zip

    在本压缩包“OpenCV-MinGW-Build-OpenCV-4.5.2-x64.zip”中,提供的是一份已经针对MinGW编译器优化的OpenCV 4.5.2版本,适用于64位Windows系统。 OpenCV 4.5.2是该库的一个稳定版本,它包含了众多新特性和性能提升...

    opencv-4.5.1-1.5.5-API文档-中英对照版.zip

    赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...

    opencv_python-4.2.0.32-cp38-cp38-win32.whl

    opencv_python-4.2.0.32-cp38-cp38-win32.whl 在线cmd命令pip3 install opencv_python 网速过慢也导致出错的问题。 操作方法:将文件下载后拷贝至Anaconda或者python安装目录下的\libs\site-packages文件夹下(没有...

    opencv_python-4.5.3.56-cp37-cp37m-linux_armv7l.whl.zip

    4. **安装OpenCV**:使用Python的pip工具安装解压后的wheel文件: ``` pip3 install opencv_python-4.5.3.56-cp37-cp37m-linux_armv7l.whl ``` 这一步会将OpenCV的Python接口安装到你的Python环境中。 5. **...

    opencv4.8.0-opencv4.9.0-opencv-contrib4.8.0-opencv-contrib4.9.0

    OpenCV库的核心功能包括图像和视频的读取、显示、存储,基本的图像处理操作如滤波、边缘检测、色彩空间转换,以及复杂的特征提取、对象检测和机器学习算法。 opencv_contrib是OpenCV的扩展模块,它提供了许多实验性...

    Qt5.9.9+opencv3.4.1源码及工具包demo

    INCLUDEPATH += C:/OpenCV-MinGW-Build-OpenCV-3.4.1/include \ C:/OpenCV-MinGW-Build-OpenCV-3.4.1/include/opencv \ C:/OpenCV-MinGW-Build-OpenCV-3.4.1/include/opencv2 LIBS += C:/OpenCV-MinGW-Build-...

    OpenCV-3.0.0-android-sdk-1.zip

    首先,OpenCV的核心是其C++库,它包含了大量的预编译的函数和类,用于执行各种图像处理操作,如图像读取、写入、转换、滤波、边缘检测、特征提取等。在Android平台上,OpenCV通过JNI(Java Native Interface)与Java...

    Python库 | opencv_python-4.3.0.38-cp37-cp37m-win_amd64.whl

    OpenCV的核心功能包括: 1. 图像处理:如图像读取、显示、保存,以及滤波、直方图均衡化、边缘检测等基本操作。 2. 特征检测与匹配:如SIFT、SURF、ORB等特征点检测算法,用于图像匹配和物体识别。 3. 图像分割:...

    Python库 | opencv-contrib-python-headless-3.4.17.63.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:opencv-contrib-python-headless-3.4.17.63.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    PyPI 官网下载 | opencv_python-4.1.2.30-cp36-cp36m-win32.whl

    资源来自pypi官网。 资源全名:opencv_python-4.1.2.30-cp36-cp36m-win32.whl

    Opencv android SDK 和Opencv Android Studio Demo 百度网盘下载地址

    - **下载地址:** [https://opencv.org/opencv-3-4-1.html](https://opencv.org/opencv-3-4-1.html),在页面底部可以找到“Android pack”链接,点击即可下载。 #### 二、OpenCV Android Studio Demo 分析 除了...

    opencv_python-4.1.1.26-cp35-cp35m-manylinux1_x86_64.whl

    opencv_python-4.1.1.26-cp35-cp35m-manylinux1_x86_64.whl

    opencv_python-4.5.2.54-cp37-cp37m-manylinux2014_aarch64.zip

    OpenCV(开源计算机视觉库)是计算机视觉和机器学习领域的一个强大工具,广泛应用于图像处理、图像分析和目标检测等任务。在这个特定的场景中,我们关注的是在arm64架构(例如树莓派这样的设备)上配置OpenCV。通常...

    opencv-python-4.5.5.62-cp37-cp37m-linux-armv7l含contrib.zip

    适用平台:树莓派armv7l python版本要求:python3.7 opencv版本:4.5.5.62 文件格式:whl格式 文件数:2个(包含contrib的whl文件) 安装方式:切换到whl所在路径后,执行sudo pip3 install whl文件名

Global site tag (gtag.js) - Google Analytics