web-dev-qa-db-ja.com

OpenCV-画像からテキストを削除

下の医療用超音波画像からテキストとマーキングを削除するにはどうすればよいですか?

enter image description here

4

白い領域のマスクを作成するためのしきい値処理とその後のインペインティングは、この画像のほとんどの場合に機能します。

img = cv2.imread('ultrasound.png')
mask = cv2.threshold(img, 210, 255, cv2.THRESH_BINARY)[1][:,:,0]
dst = cv2.inpaint(img, mask, 7, cv2.INPAINT_NS)

これがマスクです:

enter image description here

これが修復された画像です:

enter image description here

しきい値マスクは正確ではなく、文字がない明るい領域が含まれていることに注意してください。しかし、さらに重要なことに、中央の十字の暗い影など、削除する必要のある領域がマスクに含まれていない場合は特に問題があります。これがその地域のズームインです。

enter image description here

マスクは白​​い領域だけで、暗い領域は覆っていません。しきい値処理では不十分なこのような問題の場合、マスクを手動で調整できます。ここで私はマスクの元の十字架を取り、影も覆うようにシフトします。 (同様に、必要に応じて、マスクに含めるべきではない領域を手動で削除できます)

crosses = mask[235:267,290:320] | mask[233:265,288:318]
mask[235:267,290:318] = crosses
dst = cv2.inpaint(img, mask, 7, cv2.INPAINT_NS)

enter image description here

enter image description here

6
A Kruger