こちらの続きです。
OpenCVで1 - C#ATIA
ちょっと線を太くしたいので探した所、こちらを見つけました。
【Python・OpenCV】モルフォロジー演算による画像操作の基本(cv2.erode, cv2.dilate) - codevace
なるほど、文字認識は細線化すると良いんだ。
でも太くしたいんです。
元の画像はこちらです。
リンク先を元にこんな感じにしました。
# py import cv2 import numpy as np def dump_img(img): cv2.imwrite("dump.png", img) def main(): # 読み込み path = "draw.png" img = cv2.imread(path, cv2.IMREAD_GRAYSCALE) # カーネルを定義する kernel_3x3 = np.ones((3, 3), np.uint8) # 処理 resImg = cv2.dilate(img, kernel_3x3, iterations=1) dump_img(resImg) if __name__ == '__main__': main()
で、結果はこちら
え?うっすい・・・線細くなってない?
iterationsを2以上にすると、白い画像しか出来ない・・・
何故?悩みまくりましたよ。
悩んだまま、気持ちを切り替えて書き換えてみました。
・・・ # 処理 # resImg = cv2.dilate(img, kernel_3x3, iterations=1) resImg = cv2.erode(img, kernel_3x3, iterations=1) ・・・
結果はこちら
あれ?太くなってるじゃん。・・・OpenCV的には、線は白なのか!!
現場からは以上です。