C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

OpenCVで2

こちらの続きです。
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的には、線は白なのか!!
現場からは以上です。