画像内の文字を輪郭抽出し、その輪郭の最も左と右のx座標を知りたいと思っていますが、すべての輪郭の座標のx座標を抽出できていません。(以下のコードだと一部の輪郭の座標のx座標が抽出されています)
どのようにしたら全ての輪郭座標を得られて、画像内の輪郭の最も左と右のx座標を知ることができるか教えてください。
#ライブラリインポート import cv2 import numpy as np #画像の読み込み target=cv2.imread('abcd.png')#0はcv2.IMREAD_GRAYSCALE template=cv2.imread("template.png") #templateの平滑化 hsv_template= cv2.GaussianBlur(template,(3,3),0)#11,11 hsv_template= cv2.cvtColor(hsv_template,cv2.COLOR_BGR2GRAY) cv2.imwrite("hsv_template.png",hsv_template) #2値化 #ret, bin_img = cv2.threshold(hsv_template,130, 255, cv2.THRESH_BINARY) #ret, bin_img=cv2.threshold(hsv_template, 0, 255, cv2.THRESH_OTSU) bin_img=cv2.adaptiveThreshold(hsv_template,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,41,10) #第1引数=入力画像(白黒画像)、第2引数=輪郭抽出モード、第3引数=輪郭の近似手法 mask_inv = cv2.bitwise_not(bin_img) cs, h = cv2.findContours(mask_inv, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) img = cv2.drawContours(template, cs, -1, (0,255,0), 1) cs2=[point[0][0][0] for point in cs]#輪郭のすべてのx座標 length=max(cs2)-min(cs2) print(cs2) print(min(cs2)) print(max(cs2)) print("文字の長さ",length)
> 画像内の文字を輪郭抽出
の画像の例を、質問にアップロードしてください
回答3件
あなたの回答
tips
プレビュー