最近在做一个关于视觉监测的项目,需要高像素,一开始使用的是ov5647,发现精度不够,故换用了imx219,到手发现极难调通,磨难了三天,搜遍了全部教程后才最终解决,/(ㄒoㄒ)/~~,Linux真的难用。将正确流程分享出来,希望帮助到大家!注意是新版系统!!!
1.首先确保自己正确安装了opencv库(python)
(如果没有可参考以下博客)
超简单教你在树莓派上安装opencv(一)_树莓派安装opencv-CSDN博客
2.编辑配置文件
(1)修改config.txt
打开命令窗口,输入以下指令
sudo nano /boot/firmware/config.txt
再如下找到这段话,前面加上#(我已经加上了,会变成青色)
再向下翻找到最后,补上以上几段话
gpu_mem=256
start_x=1
dtoverlay=imx219
Ctrl+O保存,回车确认,再Ctrl+X离开
(2)下载raspicam2
sudo apt install python3-picamera2
(3)重启
3.试运行
用自带的Thonny运行以下代码
from picamera2 import Picamera2
import cv2
import time
picam2 = Picamera2() #创建摄像头对象开启摄像头
config = picam2.create_preview_configuration(main={"format": 'XRGB8888', "size": (640, 480)})
picam2.configure(config)
picam2.start() #开启摄像头,无需重复开启
time.sleep(1)
#fps = picam2.get(cv2.CAP_PROP_FPS)
#抓拍
while 1:
array = picam2.capture_array("main") #捕获一帧相机数据,输出为numpy.ndarray类型
cv2.imshow('test', array) #显示捕获的图像
#print("FPS: '{}'".format(fps))
key = cv2.waitKey(1)
if key & 0x00FF == ord('q'):
break
#cv2.waitKey(0) #按任意键关闭预览窗口
#cv2.destroyWindow('test')
会出现显示图像的小窗口了
如果要深入研究raspicam2,建议参考以下文章