OpenCVで円筒が積まれた画像から各円筒の外形を取得したい

Python OpenCVで円筒が積まれた画像から、各円筒の外形を取得したいと思っています。
イメージ説明
イメージ説明
・下記のコードにて輪郭を抽出して試してみましたが、内側の形状が取得され円筒の外形は取得できずにいます。
・画像は円筒材料の切断面なのですが、切断のバリが内側にあるため正確に円の形状を把握できず苦戦しています。


#画像を平滑化してノイズを除去
blur = cv2.GaussianBlur(img, (9,9), 0)

gray = cv2.cvtColor(blur, cv2.COLOR_BGR2GRAY)
cv2_imshow(gray)

th, dst = cv2.threshold(gray, 160, 255, cv2.THRESH_BINARY)
cv2_imshow(dst)

#閾値処理
ret,thresh = cv2.threshold(dst,120,255,cv2.THRESH_BINARY)

#輪郭検出 (cv2.ChAIN_APPROX_SIMPLE)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)


試しに輪郭検出でRETR_EXTERNALも試してみましたが、検出できませんでした。
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

どなたかアドバイスいただけると幸いです。

コメントを投稿

0 コメント