Opencv画像の基本操作

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)+αf1(x)G(x)=(1- \ alpha)f_0(x)+ \ alpha f_1(x) G x =1a f0x +α F1x

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()

ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/qq_41214679/article/details/112755963