Как увидеть, если область экрана меняет цвет пикселя? - PullRequest
0 голосов
/ 18 мая 2019

Я хотел бы узнать, знает ли кто-нибудь способ использования open cv в Java для просмотра части экрана и обнаружения значительного изменения цвета, например, если начальный цвет равен [r = 112,g = 112,b = 112] и становится таким [r = 43,g = 42,b = 41] или если начальный цвет становится более серым и внезапно приобретает цвет и становится более красным, зеленым или синим.

1 Ответ

0 голосов
/ 18 мая 2019

Я не правильно понял ваш вопрос, но я думаю, что вы хотите обнаружить изменения в цвете.Я написал код на Python, так что извините за это.

test image used

Я использовал это изображение в качестве моего тестового изображения.

original = cv2.imread('inner.png')
img = cv2.cvtColor(original, cv2.COLOR_RGB2GRAY) # convert to grayscale
ret,thresh1 = cv2.threshold(img, 150, 255, cv2.THRESH_BINARY) #thresholding image
ret,thresh2 = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY) #thresholding image with a different range
thresh1 = cv2.Canny(thresh1, 10, 255) #applying edge detection
thresh2 = cv2.Canny(thresh2, 10, 255) #applying edge detection
im, contours1, _ = cv2.findContours(thresh1,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) #finding contours
im, contours2, _ = cv2.findContours(thresh2,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) #finding contours
cv2.drawContours(original, contours1, -1, (0, 255, 255), 3) #drawing contours on original image
cv2.drawContours(original, contours2, -1, (0, 255, 255), 3) #drawing contours on original image
cv2.imshow('image', original)
cv2.waitKey(0)
cv2.destroyAllWindows()

Этот код дает результат.

enter image description here

...