计算机视觉基础4---图像运算

计算机视觉基础4---图像运算,第1张

参考书目:《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.图像位运算
  1. cv2.bitwise_and(src1, src2[, mask]):mask对应的位不为0时,图像src1和src2执行按位与 *** 作;
  2. cv2.bitwise_or(src1, src2[, mask]):mask对应的位不为0时,图像src1和src2执行按位或 *** 作;
  3. cv2.bitwise_not(src1[, mask]):mask对应的位不为0时,图像src1执行按位取反 *** 作;
  4. 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)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/722656.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-26
下一篇2022-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存