守则: 我正在尝试构建一个python脚本,它将图像的RGB值以及轮廓宽度和高度输入到一个神经网络中,以确定我构建的小rc车应该向前行驶还是向右转弯。 代码:
import cv2
cam = cv2.VideoCapture(2)
class Pic_Capture:
def __init__(self):
# print("Fuck you")
self.i = 0
def Img_Mods(self, cam):
self.ret, self.frame = cam.read()
self.buf1 = cv2.flip(self.frame, 1)
# self.buf2 = cv2.cvtColor(self.buf1, cv2.COLOR_BGR2RGB)
self.buf3 = cv2.GaussianBlur(self.buf1,(5,5),0)
cv2.imshow('buf2', self.buf3)
def Measurement_Bullshit(self):
self.buf4 = cv2.cvtColor(self.buf3, cv2.COLOR_RGB2GRAY)
self.buf5 = cv2.adaptiveThreshold(self.buf4,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,2)
_, contours, hierarchy = cv2.findContours(self.buf5, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
for cnt in contours:
M = cv2.moments(cnt)
self.cx = int(M['m10']/M['m00'])
self.cy = int(M['m01']/M['m00'])
print(self.cx, self.cy)
cv2.imshow('buf4', self.buf4)
running = True
i = 0
Camera = Pic_Capture()
while running:
Camera.Img_Mods(cam)
if i % 30 == 0 and i != 0:
Camera.Off_and_On_Again()
Camera.Measurement_Bullshit()
i += 1
print(i)
if cv2.waitKey(1) == 27:
Camera.Stop_Code()
问题1:
我总是在控制台中收到此消息,我希望在以后调试时将其删除。Corrupt JPEG data: 4 extraneous bytes before marker 0xd5
每次这个弹出,它是在一个不同的标记,所以我不知道如何不打印到控制台
问题2:
在if语句中的代码:if i % 10 == 0 and i != 0:
运行后,代码会返回此错误。
File "Nueral_Network_Creation.py", line 23, in Measurement_Bullshit self.cx = int(M['m10']/M['m00']) ZeroDivisionError: float division by zero
我理解代码很可能没有找到足够的轮廓来正常运行,或者可能是完全不同的东西。一如既往,我们非常感谢您的帮助
目前没有回答
相关问题 更多 >
编程相关推荐