
参考书目:《OpenCV计算机视觉基础教程》–夏帮贵。
代码编写:Jupyter Notebook。
1.加法运算
# 1.加法运算:加法运算符"+"和cv2.add()函数;
# 加法运算符"+":如果两个像素相加大于256,则将其按256取模;
# cv2.add()函数:如果两个像素相加大于256,则取255;
import cv2 as cv
img1 = cv.imread("01.jpg")
img2 = cv.imread("20.jpg")
img3 = img1 + img2
img4 = cv.add(img1, img2)
img5 = img1[100 : 102, 100 : 102]
img6 = img2[100 : 102, 100 : 102]
img7 = img5 + img6
img8 = cv.add(img5, img6)
print("img5:\n", img5)
print("------------------------")
print("img6:\n", img6)
print("------------------------")
print("img5 + img6:\n", img7)
print("------------------------")
print("cv.add(img5, img6):\n", img8)
cv.imshow("Logo_Initial", img1)
cv.imshow("J20_Initial", img2)
cv.imshow("img1+img2", img3)
cv.imshow("cv_add", img4)
cv.waitKey(0)
# 结果输出:
img5:
[[[ 6 2 198]
[ 6 2 198]]
[[ 6 2 198]
[ 6 2 198]]]
------------------------
img6:
[[[131 109 81]
[150 128 100]]
[[102 81 53]
[146 125 97]]]
------------------------
img5 + img6:
[[[137 111 23]
[156 130 42]]
[[108 83 251]
[152 127 39]]]
------------------------
cv.add(img5, img6):
[[[137 111 255]
[156 130 255]]
[[108 83 251]
[152 127 255]]]
# 2.加权加法运算:cv2.addWeighted()函数执行图像加权加法
# 语法:dst = cv2.addWeighted(src1, alpha, src2, beta, gamma)
# dst:保存结果;src1、src2:图像数组;alpha、beta:权重;gamma:附加值;
# dst = src1 * alpha + src2 * beta + gamma
import cv2 as cv
img1 = cv.imread("apple.jpg")
img2 = cv.imread("peach.JPG")
img3 = cv.addWeighted(img1, 0.8, img2, 0.2, 0)
img4 = cv.addWeighted(img1, 0.2, img2, 0.8, 0)
cv.imshow("Apple_Initial", img1)
cv.imshow("Peach_Initial", img2)
cv.imshow("0.8-0.2", img3)
cv.imshow("0.2-0.8", img4)
cv.waitKey(0)
2.图像位运算
- cv2.bitwise_and(src1, src2[, mask]):mask对应的位不为0时,图像src1和src2执行按位与 *** 作;
- cv2.bitwise_or(src1, src2[, mask]):mask对应的位不为0时,图像src1和src2执行按位或 *** 作;
- cv2.bitwise_not(src1[, mask]):mask对应的位不为0时,图像src1执行按位取反 *** 作;
- cv2.bitwise_xor(src1, src2[, mask]):mask对应的位不为0时,图像src1和src2执行按位异或 *** 作;
import cv2 as cv
img1 = cv.imread("apple.jpg")
img2 = cv.imread("peach.JPG")
img3 = cv.bitwise_and(img1, img2)
img4 = cv.bitwise_or(img1, img2)
img5 = cv.bitwise_not(img2)
img6 = cv.bitwise_xor(img1, img2)
cv.imshow("Apple_Initial", img1)
cv.imshow("Peach_Initial", img2)
cv.imshow("and", img3)
cv.imshow("or", img4)
cv.imshow("not", img5)
cv.imshow("xor", img6)
cv.waitKey(0)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)