cv2.copyMakeBorder

画像に畳み込み演算が含まれる場合、0パディングがよく使用されます。0パディングは特別なエッジパディングです。copyMakeBorder()関数はopencv-pythonライブラリで使用されます。この関数にはさまざまなパディングメソッドがあります。

元の画像:

Opencv-Pythonエッジフィリング関数cv2.copyMakeBorderの使用と効果display_firstpicture

cv2.BORDER_REPLICATEを入力し、最後のピクセル、コード、および効果を繰り返します。

img2 = cv2.copyMakeBorder(img1,200,200,200,200,cv2.BORDER_REPLICATE)
#调整绘制尺寸
plt.figure(figsize=(5,5))
plt.imshow(img2,interpolation='bicubic')

Opencv-Pythonエッジフィリング関数cv2.copyMakeBorderの使用と効果display_2番目の画像

cv2.BORDER_REFLECTを使用して、境界要素の鏡像を塗りつぶします。

img3 = cv2.copyMakeBorder(img1,200,200,200,200,cv2.BORDER_REFLECT)

Opencv-Pythonエッジフィリング関数cv2.copyMakeBorderの使用と効果display_93

cv2.BORDER_REFLECTと同様に、cv2.BORDER_REFLECT_101を入力します。

img3 = cv2.copyMakeBorder(img1,200,200,200,200,cv2.BORDER_REFLECT_101)

 

Opencv-Pythonエッジフィリング関数cv2.copyMakeBorderの使用と効果display_4番目の画像

肉眼では大きな違いはわかりませんが、2つの画像の違いは、それらがまだ異なっていることを示しています。

plt.imshow(img4-img3,interpolation='bicubic')

Opencv-Pythonエッジフィリング関数cv2.copyMakeBorderの使用と効果display_5番目の画像

具体的な違いは何ですか?ご存知の場合は教えてください。

cv2.BORDER_WRAPで入力します。

img5 = cv2.copyMakeBorder(img1,200,200,200,200,cv2.BORDER_WRAP)

Opencv-Pythonエッジフィリング関数cv2.copyMakeBorderの使用と効果display_6番目の画像

これにcv2.BORDER_CONSTANTを入力し、指定した値で境界を追加します。デフォルトは黒です。

img6 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT)
#添加红色边界
#RED = [255,0,0]
#img6 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=RED)

Opencv-Pythonエッジフィリング関数cv2.copyMakeBorderの使用と効果display_7番目の画像

次の3行のコードは、指定された赤い境界線を追加するためのものです。

 

Matlab、Python、C ++でプログラミング、機械学習、コンピュータービジョン理論の実装とガイダンス、学部と修士の両方の学位、塩漬け魚の取引、専門家の回答を知ってください。QQ番号757160542に連絡してください。

 

 

おすすめ

転載: blog.csdn.net/weixin_36670529/article/details/114055346