Конечная цель проекта состоит в том, чтобы сделать снимок экрана и вывести круги в местах расположения снимков экрана (средняя точка и радиус). Таким образом, самым началом этого проекта является захват экрана и отправка его через функцию поиска круга.
Я начал здесь: Снимок экрана с OpenCV и Python-2.7
Это работает для его функциональности, и на моем компьютере cv2.imshow
успешно отображает снимки экрана, как и должно. Однако я хочу, чтобы он работал с этим примером: https://opencv -python-tutroals.readthedocs.io / en / latest / py_tutorials / py_imgproc / py_houghcircles / py_houghcircles.html
По сути, код в этом примере работает для cv2.imshow
, однако я хочу, чтобы он работал с cv2.imread
, поэтому он совместим с примером, который я хочу скопировать.
Я пробовал несколько основных вещей безрезультатно, для справки см. Ниже!
Попытка 1: http://prntscr.com/n8tpyh
printscreen_pil = Imagegrab()
printscreen_numpy = np.array(printscreen_pil.getdata(),dtype='uint8')
img = cv2.imread(printscreen_humpy , 0)
Ошибки при cv2.imread
с сообщением TypeError: bad arguement type for built-in operation
Попытка 2: http://prntscr.com/n8tqtp
from mss import mss
mon = {'top':160 , 'left': 160 , 'width': 200, 'height': 200 }
sct = mss()
sct.get_pixels(mon)
Ошибки при sc.getpixels
с сообщением AttributeError: 'MSS' object has no attribute `get_pixels'
Попытка 3: https://prnt.sc/n8tw7w
img_grab = ImageGrab.grab(bbox=(0,0,500,500))
img = np.array(img_grab)
#img = cv2.imread(img)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
Ошибки в cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
с очень длинным сообщением, которое я суммирую в (-2:Unspecified error)
и Invalid number of channels in input image: 'VScn::contains(scn)' where 'scn' is 3
для получения дополнительной информации, пожалуйста, откройте скриншот, если не выбросите комментарий, и я наберу этот кусок для вас!
Попытка 4: http://prntscr.com/n8u0jc
cords = {'top':40 , 'left': 0 , 'width': 800, 'height': 640 }
with mss() as sct :
img = np.array(sct.grab(cords))
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
Ошибки на cimg = cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
с сообщением я снова подведу итог к Invalid number of channels in input image: `VScn::contains(scn)' where 'scn' is 4
Спасибо всем !!!!