【问题标题】:Python shows error "name 'resized' is not defined" on compiling the following codePython 在编译以下代码时显示错误“未定义名称‘调整大小’”
【发布时间】:2018-07-23 13:45:45
【问题描述】:

我正在尝试使用树莓派 3 和 picam 在 python 上实现线路检测

import picamera
import picamera.array
import time
import cv2
import numpy as np

#Initialize camera
camera = picamera.PiCamera()
camera.resolution = (640,480)
rawCapture = picamera.array.PiRGBArray(camera)
#Let camera warm up
time.sleep(0.1)

#Capture image
camera.capture(rawCapture, format="bgr")
img = rawCapture.array

#Convert to Grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#Blur image to reduce noise
blurred = cv2.GaussianBlur(gray, (9, 9), 0)

#Perform canny edge-detection
edged = cv2.Canny(blurred, 50, 150)

#Perform hough lines probalistic transform
lines = cv2.HoughLinesP(edged,1,np.pi/180,10,80,1)

#Draw lines on input image
if(lines != None):
    for x1,y1,x2,y2 in lines[0]:
        cv2.line(resized,(x1,y1),(x2,y2),(0,255,0),2)

cv2.imshow("line detect test", img) 
cv2.waitKey(0)

显示如下错误:

Traceback(最近一次通话最后一次):文件“/home/pi/picam lane detection.py”,第 33 行,在 cv2.line(resize,(x1,y1),(x2,y2),(0,255,0),2) NameError: name 'resize' is not defined

请帮我解决问题。

【问题讨论】:

  • cv2.line(resized,(x1,y1),(x2,y2),(0,255,0),2) 中调整了什么大小?
  • resized 从未在您显示的代码中说明...大声笑
  • 将 'resize' 替换为 'img' 为 cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)
  • 感谢@flamelite 成功了

标签: python-3.x python-2.7 opencv image-processing raspberry-pi3


【解决方案1】:

我认为resized 没有定义。也许您可以将resized 更改为img

import picamera
import picamera.array
import time
import cv2
import numpy as np

#Initialize camera
camera = picamera.PiCamera()
camera.resolution = (640,480)
rawCapture = picamera.array.PiRGBArray(camera)
#Let camera warm up
time.sleep(0.1)

#Capture image
camera.capture(rawCapture, format="bgr")
img = rawCapture.array

#Convert to Grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#Blur image to reduce noise
blurred = cv2.GaussianBlur(gray, (9, 9), 0)

#Perform canny edge-detection
edged = cv2.Canny(blurred, 50, 150)

#Perform hough lines probalistic transform
lines = cv2.HoughLinesP(edged,1,np.pi/180,10,80,1)

#Draw lines on input image
if(lines != None):
    for x1,y1,x2,y2 in lines[0]:
        cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)

cv2.imshow("line detect test", img) 
cv2.waitKey(0)

【讨论】:

    猜你喜欢
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    相关资源
    最近更新 更多