我是python和opencv的新手。我试图同时学习这两个东西以使事情变得更有趣。
我试图检测在线图像中的某些像素是否具有某种颜色(绿色)。在线图像将始终更新,因此相关像素并不总是具有相同的颜色,因此urllib。 我使用循环来浏览我想检查的所有特定像素。
import urllib.request
import cv2
# import numpy as np
def download_status(url):
urllib.request.urlretrieve(url, "boxes.jpg")
# List with representative pixels of each box, total 8 boxes
box_cords = [[62, 42], [144, 42], [234, 42], [312, 42], [62, 133], [144, 133], [234, 133], [312, 133]]
# List describind box status/colour; 0-gray 1-green
box_status = [[0], [0], [0], [0], [0], [0], [0], [0]]
download_status("https://image.ibb.co/chtUW6/boxes.png")
box_scheme = cv2.imread("boxes.jpg")
for box in box_cords:
box_colour = box_scheme[box]
# print(box_colour)
if box_colour == "[51 204 52]":
box_status[box] = 1
# print(box_status)
不幸的是我收到了一个警告:“FutureWarning:元素比较失败;而是返回标量,但将来会执行元素比较”
同样在通过打印表示颜色的变量进行调试时,我总是得到相同的值(255 255 255)。而且我不确定如果我在语法方面正确地比较循环中的颜色,这很可能是警告的原因。
我狡猾地寻找警告以及如何做我想要达到但未能找到任何有用的东西..
提前致谢!