2017-09-14 7 views
0

を見つけることができる:私は次のコードを使用ない私は、このイメージに取り組んでいます正確な輪郭検出(OpenCVの、パイソン)

input_img = cv2.imread(input_image) 
img = cv2.imread(input_image, 0) 

kernel = np.ones((5,5),np.uint8) 
# morphological_img = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel) 
# # morphological_img = cv2.threshold(morphological_img, morphological_img, 128, 255, cv2.THRESH_BINARY_INV) 
# # img = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel) 

# morphological_img = cv2.medianBlur(morphological_img, 5) 


canny_img = cv2.Canny(input_img, 100, 200) 
_, contours, hierarchy = cv2.findContours(canny_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # get contours 

をし、これらの輪郭を得た:

私はlこれらの機能は、ぼかし、閾値処理などのような機能ですが、私が期待している輪郭が得られません。私はコンテナのように黒い輪郭と紫色の輪郭を見つける必要がありますが、背景コンテナの代わりにテキストの周りに輪郭を描いています。

私の悪い英語のために申し訳ありません。必要なものがあれば、お尋ねください。

+0

その手前の輪郭は考えていない見つける....私はそこに気づいたあなたのコメント....同じ問題についてhttps://stackoverflow.com/a/43283990/5294258 – sturkmen

+0

@sturkmen感謝を参照してください背景色が変化している等高線... –

+0

申し訳ありませんが、私はあなたの質問を慎重に読んでいませんでした。希望の結果を画像に表示してください。 – sturkmen

答えて

1

同じ問題が発生した人を助けることができると多くの研究をした後、私自身の質問に答えています。

質問がここにあります...私たちは背景のコンテナを見つけることができませんが、現在の技術(スレッショルド、ぼかしなど)をすべて見つけることができませんでした。

境界線(サイズ= 10以上)を追加し、画像に存在しない色を選択すると、必要なすべての輪郭が得られます。

bordersize = 10 
img = cv2.copyMakeBorder(img, top=bordersize, bottom=bordersize, left=bordersize, right=bordersize, borderType= cv2.BORDER_CONSTANT, value=[247, 248, 188]) 
関連する問題