1.拆分和合并图像通道 cv.split() cv.merge()
cv.split() 很耗时,非必要可以使用numpy代替
import cv2 as cv
img = cv.imread('./GUI/Images/1.JPG')
img = cv.resize(img,(300,300))
b,g,r = cv.split(img)
cv.imshow('img',img)
cv.imshow('img1',b)
cv.imshow('img2',g)
cv.imshow('img3',r)
img = cv.merge((b,g,r))
cv.imshow('img4',img)
cv.waitKey(0)
2.设置边框 cv.copyMakeBorder()
import cv2 as cv
img = cv.imread('./GUI/Images/1.JPG')
img = cv.resize(img,(300,300))
img = cv.copyMakeBorder(img,20,20,20,20,cv.BORDER_WRAP)
'''
borderType属性:
cv.BORDER_CONSTANT - 添加恒定的彩色边框。该值应作为下一个参数给出。
cv.BORDER_REFLECT - 边框将是边框元素的镜像,如下所示: fedcba | abcdefgh |hgfedcb
cv .BORDER_REFLECT_101或 cv.BORDER_DEFAULT与上述相同,但略有变化,例如: gfedcb | abcdefgh | gfedcba
cv .BORDER_REPLICATE 最后一个元素被复制,像这样: aaaaaa | abcdefgh | hhhhhhh
cv .BORDER_WRAP 难以解释,它看起来像这样: cdefgh | abcdefgh | abcdefg
'''
cv.imshow('img',img)
cv.imwrite('img1.jpg',img)
cv.waitKey(0)
3.选择ROI
import cv2 as cv
img = cv.imread('./GUI/Images/1.JPG')
img = cv.resize(img,(300,300))
cv.imshow('img',img)
ball = img[0:100, 0:100] #
cv.imshow('img1',ball)
cv.waitKey(0)
4.图像融合 cv.addWeighted()
G ( x ) = ( 1 − α ) f 0 ( x ) + α f 1 ( x ) G(x)= (1 - \alpha)f_0(x)+ \alpha f_1(x) G(x)=(1−α)f0(x)+αf1(x)
import cv2 as cv
img1 = cv.imread('./GUI/Images/1.JPG')
img2 = cv.imread('./GUI/Images/2.JPG') #读取两张图片
img1 = cv.resize(img1,(300,300))
img2 = cv.resize(img2,(300,300))
dst = cv.addWeighted(img1,0.6,img2,0.4,0) #图片融合
cv.imshow('img1',img1)
cv.imshow('img2',img2)
cv.imshow('dst',dst)
cv.waitKey(0)
cv.destroyAllWindows()