イメージ上でテキストブロックが使用している領域の割合を検出したいと思います。アイデアは、40%以上のテキストを含むイメージを拒否することです。私はテキストhereを検出する際に非常に有益で詳細な投稿を見ました。リンクにはC++が使用されています。私はそれをPythonで使う考えを得ることができると思う。イメージ上のテキストを検出し、OpenCvを使用して領域を計算します
しかし、使用している領域のパーセンテージを測定するには、どのような方法が最適かわかりません。私たちが使用できるような類似の実装がありますか?私はちょうどCvを使い始めています。
私は以下のように私のテキストをpythonで取得しています。これは、フォーラムでオンラインで作業するために見つけたコードです。
import cv2
def captch_ex(file_name):
img = cv2.imread(file_name)
img_final = cv2.imread(file_name)
img2gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 180, 255, cv2.THRESH_BINARY)
image_final = cv2.bitwise_and(img2gray, img2gray, mask=mask)
ret, new_img = cv2.threshold(image_final, 180, 255, cv2.THRESH_BINARY)
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (3,3))
dilated = cv2.dilate(new_img, kernel, iterations=9)
contours, hierarchy = cv2.findContours(dilated, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
for contour in contours:
[x, y, w, h] = cv2.boundingRect(contour)
if w < 35 and h < 35:
continue
cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 255), 2)
cv2.imshow('captcha_result', img)
cv2.waitKey()
file_name = 'my_image.jpg'
captch_ex(file_name)
しかし、さらに進めるにはどうすればよいですか?
リンクの内容を読んだことがありますか?参考文献PythonでC++コードを書き直す別の答えがあります。何を試しましたか? – barny
@barny私はしばらく前にテキスト検出を試みました。その部分は確信していますが、測定領域に関しては全く空白です。私は測定面積に関して何も試していないので、どこから始めるべきかわからない。だから手がかりを得たら、試してみたい。 – esafwan
@barny私がオンラインで見つけた、私のために働いたコードを追加しました。 – esafwan