Python版本Opencv安装及一些问题

安装Python版本

for Python2:

1
2
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

for Python3:

1
sudo pip3 install opencv-python

启动摄像头失败

Opencv启动摄像头出现:

1
2
3
4
5
libv4l2: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl S_FMT
libv4l2: error setting pixformat: Device or resource busy
libv4l1: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT

解决方法:

1
2
3
4
$ fuser /dev/video0
/dev/video0: 1871m
$ ps axl | grep 1871
$ kill -9 1871

rectangle 与 putText无返回值

方法:

1
2
3
4
cv2.rectangle(image, tuple(box_coords[:2]), tuple(box_coords[2:]), (0,255,0))

参数:
image,对角线,色彩空间

没有返回值

1
2
3
4
cv2.putText(image, label_str, (box_coords[0], box_coords[1]), 0, 0.5, (0,255,0), 1, cv2.CV_AA)

参数:
cv2.CV_AA表示的是线条形状

这个也没有返回值

imshow显示图像为纯白

图像数据的标准类型是uint8,当图像参与运算时,为了保证精度,会将其从uint8类型转换为double类型(类型变化,数值不变),double型的范围在0~1,超过1的当做1,所以用imshow显示图像时是一片白色。

解决方法:

  1. 用uint8()对其进行类型转换;
  2. 影像/255,将其转换到0~1;
  3. imshow(I,[]),自动调整数据的范围以便显示;
------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道