Opencv学习笔记——图像像素操作(逻辑运算)

本文是关于OpenCV的图像处理学习笔记,重点介绍了像素级别的逻辑运算,包括按位与、按位或、按位非和按位异或。通过示例代码展示了如何使用这些运算实现图像操作,如创建图像、应用掩膜以及显示结果。这些运算在处理图像加logo、局部遮挡等场景中非常有用。

以下均为github上opencv的个人学习笔记,原路径如下:

https://github.com/JimmyHHua/opencv_tutorials

源码示例:

import cv2 as cv
import numpy as np

#create image one
src1 = np.zeros(shape=[400,400,3],dtype=np.uint8)
src1[100:200, 100:200, 1] = 255
src1[100:200, 100:200, 2] = 255
cv.imshow("input1", src1)
#create image two
src2 = np.zeros(shape=[400,400,3],dtype=np.uint8)
src2[150:250,150:250,2] = 255
cv.imshow("input2", src2)

dst1 = cv.bitwise_and(src1,src2)
dst2 = cv.bitwise_xor(src1,src2)
dst3 = cv.bitwise_or(src1,src2)

cv.imshow("dst1",dst1)
cv.imshow("dst2",dst2)
cv.imshow("dst3",dst3)

src = cv.imread("test.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
dst = cv.bitwise_not(src)
cv.imshow("dst", dst)

cv.waitKey(0)
cv.destroyAllWindows()

按位运算
包括按位与(AND)、按位或(OR)、按位非(NOT)、按位异或(XOR)等运算。

按位运算的用途:比如要得到一个加logo的图像。如果将两幅图片直接相加会改变图片的颜色,如果用图像混合,则会改变图片的透明度,这时候就需要用按位操作,既不改变图像颜色,又不改变图像透明度,类似PS。
这里需要了解一个术语——掩膜(mask)是用一副二值化图片对另外一幅图片进行局部的遮挡。

主要函数
cv2.bitwise_and():位与运算,有0则为0, 全为1则为1
cv2.bitwise_not():或运算,有1则为1, 全为0则为0
cv2.bitwise_or():非运算,非0为1, 非1为0
cv2.bitwise_xor():异或运算,不同为1, 相同为0
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值