画像から赤色を検出し、画面サイズに基づいて座標を取得する必要がありました。マスクを使用pythonでopencvを使ったブロブフィルタリング
- は赤色
- を有する画像の一部がそれに
- アプライドガウシアンフィルタをBWにそれを変換さフェッチ。
最終イメージには、残りの座標を削除して取得するために必要な小さなボディがあります。私はSimpleBlobDetectorを試しましたが、助けにはなりませんでした。これは私のコードです -
import cv2
import numpy as np
from PIL import Image
img=cv2.imread("D:\Ankur\Free\line.png")
img_hsv=cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_red = np.array([0,50,50])
upper_red = np.array([10,255,255])
mask0 = cv2.inRange(img_hsv, lower_red, upper_red)
lower_red = np.array([170,50,50])
upper_red = np.array([180,255,255])
mask1 = cv2.inRange(img_hsv, lower_red, upper_red)
mask = mask0+mask1
output_img = img.copy()
output_img[np.where(mask==0)] = 0
gray = cv2.cvtColor(output_img, cv2.COLOR_BGR2GRAY)
#Adaptive Gaussian Thresholding
gray = cv2.medianBlur(gray,5)
th3 = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)
cv2.imshow("images", th3)
#cv2.ims
cv2.waitKey(0)
これは私が使用していた画像と、最終的なイメージである -
オリジナル画像:ガウスフィルタの後
輪郭を探してみませんか?輪郭を見つけ、面積や周囲に基づいて小さいものを拒否し、大きいものを保持します。次に、残りの大きな輪郭の周囲に長方形を描き、座標を取得します。 –