OpenCV+python膨張と腐食を実現する例
1,概念及び原理:
膨張(Dilating)(または)
(1)画像Aと任意の形状のカーネル(B)は、一般的に正方形または円形で畳み込みます。
(2)カーネルBには定義可能なアンカーポイントがあり、通常はカーネルの中心点と定義されている。
(3)膨張操作を行う場合は、カーネルBを画像Aになぞり、カーネルBの被覆領域の最大の相素値を抽出し、アンカー位置の相素に代えます。この最大化動作は、画像内の明るい領域から「拡張」を開始することになることは明らかである(したがって、用語拡張dilationがある)。
3*3のカーネルを例にとると、
腐食(Ending)
(1)形態学的操作家族に腐食し、膨張操作する双子姉妹。それは内核被覆下の相素の最小値を抽出した。
(2)腐食操作を行う場合は、カーネルBを画像に切り、カーネルBの被覆領域の最小の相素値を抽出し、アンカーポイント位置の相素に代えます。
注意すべきは、腐食と膨張は白い部分(ハイライト部分)にとって、黒い部分ではありません。膨張とは、画像のハイライト部分を膨張させ、「近傍拡張」となり、効果図は原図よりも大きなハイライト領域を持つ。腐食とは原図のハイライト部分が腐食され、「隣の領域が蚕食されている」というもので、効果図は原図より小さい明るいエリアを持っています。
ソースコード:
ここで、OpenCV+pythonの膨張と腐食を実現する例についての記事を紹介します。OpenCVの膨張と腐食に関する詳細については、以前の記事を検索してください。また、下記の関連記事をご覧ください。これからもよろしくお願いします。
膨張(Dilating)(または)
(1)画像Aと任意の形状のカーネル(B)は、一般的に正方形または円形で畳み込みます。
(2)カーネルBには定義可能なアンカーポイントがあり、通常はカーネルの中心点と定義されている。
(3)膨張操作を行う場合は、カーネルBを画像Aになぞり、カーネルBの被覆領域の最大の相素値を抽出し、アンカー位置の相素に代えます。この最大化動作は、画像内の明るい領域から「拡張」を開始することになることは明らかである(したがって、用語拡張dilationがある)。
3*3のカーネルを例にとると、
腐食(Ending)
(1)形態学的操作家族に腐食し、膨張操作する双子姉妹。それは内核被覆下の相素の最小値を抽出した。
(2)腐食操作を行う場合は、カーネルBを画像に切り、カーネルBの被覆領域の最小の相素値を抽出し、アンカーポイント位置の相素に代えます。
注意すべきは、腐食と膨張は白い部分(ハイライト部分)にとって、黒い部分ではありません。膨張とは、画像のハイライト部分を膨張させ、「近傍拡張」となり、効果図は原図よりも大きなハイライト領域を持つ。腐食とは原図のハイライト部分が腐食され、「隣の領域が蚕食されている」というもので、効果図は原図より小さい明るいエリアを持っています。
ソースコード:
import cv2 as cv
import numpy as np
def erode_demo(image):
# print(image.shape)
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
#cv.imshow("binary", binary)
kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 15))#
dst = cv.erode(binary, kernel)#
cv.imshow("erode_demo", dst)
def dilate_demo(image):
#print(image.shape)
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
#cv.imshow("binary", binary)
kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))#
dst = cv.dilate(binary, kernel)#
cv.imshow("dilate_demo", dst)
src = cv.imread("F:/images/test01.png")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
erode_demo(src)
dilate_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()
実行結果:ここで、OpenCV+pythonの膨張と腐食を実現する例についての記事を紹介します。OpenCVの膨張と腐食に関する詳細については、以前の記事を検索してください。また、下記の関連記事をご覧ください。これからもよろしくお願いします。