キャニー
◉キャニーとは?
エッジを見つける方法の1つ。
エッジを美しく見つけるのが特徴だが、
見つける時間が長くなる。
キャニーはソーベルの結果を使うことで、
エッジを美しく浮き上がらせることができる。
◉キャニーの大まかな流れ
①元画像からノイズを除去
②ノイズを除去した画像にソーベルを横と縦の両方向で実施
③エッジに不必要な部分を除外
④閾値を使って「確実にエッジ」と「エッジっぽい」部分を分ける
⑤「確実にエッジ」と「エッジっぽい」部分が重ならないところを除去
⑥「確実にエッジ」と「エッジっぽい」部分が重なったところだけをエッジとする
◉キャニーで画像からエッジを抜き出す方法
⚫︎画像:エッジを表現したい画像
⚫︎小さい閾値:「エッジっぽい」にしたい明暗
⚫︎大きい閾値:「確実にエッジ」にしたい明暗
<画像からキャニーで輪郭を抽出するPythonコード例>
import sys
import cv2
if len(sys.argv)<2:
print('表示したいファイル名を指定してください。')
sys.exit()
file = sys.argv[1]
try:
img = cv2.imread( ' file ' )
if img is None:
raise ValueError('ファイルが見つかりません')
edge = cv2.Canny (img, 10.0, 200.0)
cv2.imshow(file, edge)
cv2.waitKey(0)
cv2.destroyAllWindows()
except ValueError as e:
print(e)
except:
import traceback
traceback.print_exc()