【问题标题】:Vehicle detection on a image instead of detection on a video图像上的车辆检测而不是视频上的检测
【发布时间】:2017-12-16 11:22:00
【问题描述】:

我想在检测到的汽车上绘制矩形。但是当我运行我的代码时,什么都没有出现。而且画面卡顿了。

import cv2
cascade_src = 'cars.xml'
img = cv2.imread('1.png')

##print(img)

car_cascade = cv2.CascadeClassifier(cascade_src)
cars = car_cascade.detectMultiScale(img, 1.1, 1)
##print cars
for (x,y,w,h) in cars:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    cv2.imshow('image', img)

【问题讨论】:

  • img 只是一个图像 - 例如,import Image; img = Image.open("a-picture-of-a-car.jpg") 将替换 cap.read()
  • 我不知道如果没有像这样的勺子喂养社区,像你这样的人会做什么......
  • @Piglet 这种交流的目的不是问问题并得到启发吗?
  • 确实如此。但是在您之前至少应该尝试自己找到解决方案。有数千个关于如何在 OpenCV 中加载图像的示例,更不用说 OpenCV 文档和教程了。一切都可以通过简单的网络搜索找到。此外,“这是我的代码,我试图更改它但它不起作用”并不是一个很好的问题描述。你至少应该提供你不工作的代码。否则,您似乎只是一个懒惰的人,在网上找到了一些工作代码,现在正在寻找一些傻瓜来免费更改它。这一切都归结为如何呈现您的问题。 How to Ask

标签: python-2.7 image-processing opencv3.0


【解决方案1】:

读取图像并应用相同的功能

import cv2
cascade_src = 'cars.xml'
img = cv2.imread('car.jpg',0)
car_cascade = cv2.CascadeClassifier(cascade_src)
cars = car_cascade.detectMultiScale(img, 1.1, 1)
for (x,y,w,h) in cars:
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)      

cv2.imshow('video', img)
cv2.waitKey(0)

【讨论】:

  • 谢谢你 我试过类似的,但我没有看到图像。画面滞后。并且图像没有出现。我不知道问题出在哪里。出了点问题,但不知道在哪里:(
  • 当您使用 imread 读取图像时,请尝试使用 print(img) 并查看该图像是否被正确读取。之后尝试打印检测到的 x、y、w、h 点,看看它们是否不是 None
  • 当我打印图像时。我看到矩阵坐标。我还打印 x y wh 坐标正确很多。但是当我想看到带有矩形的图像时,屏幕上什么也没有,它的滞后:S
猜你喜欢
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-05
  • 1970-01-01
  • 2023-02-16
  • 2016-01-21
  • 1970-01-01
相关资源
最近更新 更多