Python-OpenCV教程之图像的位运算详解
简介
图像的位运算需要用到OpenCV中的位运算方法,包括按位与、按位或、按位异或、按位取反。图像的位运算主要应用于图像融合、遮罩操作和图像分割等领域。
按位与(bitwise_and)
按位与操作将两个图像的每一个像素进行按位与运算。当两个像素的二进制位都为1时,输出结果的该像素对应二进制位才为1,否则为0。
import cv2
import numpy as np
src1 = cv2.imread("image1.jpg")
src2 = cv2.imread("image2.jpg")
dst = cv2.bitwise_and(src1, src2)
cv2.imshow("dst",dst)
cv2.waitKey(0)
按位或(bitwise_or)
按位或操作将两个图像的每一个像素进行按位或运算。当两个像素的二进制位都为0时,输出结果的该像素对应二进制位才为0,否则为1。
import cv2
import numpy as np
src1 = cv2.imread("image1.jpg")
src2 = cv2.imread("image2.jpg")
dst = cv2.bitwise_or(src1, src2)
cv2.imshow("dst",dst)
cv2.waitKey(0)
按位异或(bitwise_xor)
按位异或操作将两个图像的每一个像素进行按位异或运算。当两个像素的二进制位不同时,输出结果的该像素对应二进制位才为1,否则为0。
import cv2
import numpy as np
src1 = cv2.imread("image1.jpg")
src2 = cv2.imread("image2.jpg")
dst = cv2.bitwise_xor(src1, src2)
cv2.imshow("dst",dst)
cv2.waitKey(0)
按位取反(bitwise_not)
按位取反操作将图像中的每一个像素进行按位取反操作。当像素二进制位为0时,输出结果对应像素的二进制位为1,否则为0。
import cv2
import numpy as np
src1 = cv2.imread("image1.jpg")
dst = cv2.bitwise_not(src1)
cv2.imshow("dst",dst)
cv2.waitKey(0)
示例说明
两张二值图像进行与运算,得到的结果是两张图片的重叠部分。
import cv2
import numpy as np
src1 = cv2.imread("image1.jpg",0)
src2 = cv2.imread("image2.jpg",0)
ret, dst1 = cv2.threshold(src1, 127, 255, cv2.THRESH_BINARY)
ret, dst2 = cv2.threshold(src2, 127, 255, cv2.THRESH_BINARY)
dst = cv2.bitwise_and(dst1, dst2)
cv2.imshow("dst",dst)
cv2.waitKey(0)
两张图像进行或运算,得到包含两张图片的所有部分的图像。
import cv2
import numpy as np
src1 = cv2.imread("image1.jpg")
src2 = cv2.imread("image2.jpg")
dst = cv2.bitwise_or(src1, src2)
cv2.imshow("dst",dst)
cv2.waitKey(0)
结论
图像的位运算需要用到OpenCV中的位运算方法,包括按位与、按位或、按位异或、按位取反。这些方法可以应用在图像融合、遮罩操作和图像分割等领域。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python-OpenCV教程之图像的位运算详解 - Python技术站