물체·조건을 고려한 물체 검출
소개
물체의 검출 방법으로 자주 사용되는 것은, 차분을 취해 RGB의 차분을 취하는 것입니다만,
검출하고 싶은 물체의 성질을 생각하는 것으로, 보다 적절한 검출 방법이 있습니다.
대상
지금은 결국 거푸집의 출현을 판별 할 수있는 시스템을 만들려고합니다.
다이스의 성질로서는 다음과 같은 것이 생각됩니다.
지금은 결국 거푸집의 출현을 판별 할 수있는 시스템을 만들려고합니다.
다이스의 성질로서는 다음과 같은 것이 생각됩니다.
배경에서 거푸집만 잘라내려고 하면,
거푸집의 그림자가 물체 검출의 방해가 될 수 있습니다.
이번에는 RGB가 아니라 HSV로 물체 검출함으로써 그림자의 영향을 억제해 보겠습니다.
그림자가 되는 장소는 채도·휘도의 변동은 작고, 색조의 변화는 없을 것이므로, 그것을 근거로 한 임계치의 선택을 하고 있습니다.
또한, HSV로의 변환 방법은 OpenCV와 Visual C++에 의한 화상 처리와 인식 (4)
HSV의 각 채널별 변환에는 NumPy 배열 ndarray 분할을 참고로 했습니다.
마지막 마스크 처리는 Python + OpenCV를 사용한 마스크 이미지 적용 방법 를 참고로 하고 있습니다.
import cv2
import numpy as np
GAUSSIAN_SIZE = (7,7)
camera = cv2.VideoCapture(0)
# 背景画像とダイスの画像を取得
result, image_base = camera.read()
if not result:
exit()
image_base_blured = cv2.GaussianBlur(image_base, GAUSSIAN_SIZE, 0)
cv2.imshow("baseImage",image_base)
cv2.waitKey(0)
# カメラの画像を読み取るとき、前回のカメラのバッファを読んでる?
result, image_dice = camera.read()
result, image_dice = camera.read()
if not result:
exit()
image_dice_blured = cv2.GaussianBlur(image_dice, GAUSSIAN_SIZE, 0)
# HSVに変換した上で差分をとる
base_hsv = cv2.cvtColor(image_base_blured, cv2.COLOR_RGB2HSV)
dice_hsv = cv2.cvtColor(image_dice_blured, cv2.COLOR_RGB2HSV)
diff_hsv = cv2.absdiff(base_hsv, dice_hsv)
# 2次元目を3つに分割→HSVの差分のチャンネルを分離
diff_imagelist = np.split(diff_hsv,3,2)
width = diff_hsv.shape[0]
height = diff_hsv.shape[1]
hdiff = diff_imagelist[0].reshape(width,height)
sdiff = diff_imagelist[1].reshape(width,height)
vdiff = diff_imagelist[2].reshape(width,height)
image_dice[hdiff>15] = [255,0,0]
image_dice[sdiff>50] = [0,255,0]
image_dice[vdiff>65] = [0,0,255]
cv2.imshow("diceImage",image_dice)
cv2.waitKey(0)
cv2.destroyAllWindows()
결과
주사위의 예
위 코드로 나눈 예
RGB로 임계값을 취한 경우
결론
화상 처리를 실시하고 싶은 대상이 있는 경우, 대상물에 적절한 처리 방법이 없는지 생각하면, 처리가 편해질 수 있습니다.
이번에는 거푸집에 적합한 처리를 할 수 있었습니다.
Reference
이 문제에 관하여(물체·조건을 고려한 물체 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mickie895/items/d91a53c9736210189751
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(물체·조건을 고려한 물체 검출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mickie895/items/d91a53c9736210189751텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)