import cv2
def main():
cap = cv2.VideoCapture('nvarguscamerasrc ! video/x-raw(memory:NVMM), width=640, height=480, format=(string)NV12, framerate=(fraction)20/1 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink', cv2.CAP_GSTREAMER)
if not cap.isOpened():
print("i love you")
return
while True:
ret, frame = cap.read()
if not ret:
print("1")
break
cv2.imshow("i love ab", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main()
在jerson nano中,我用python2运行这个代码可以打开摄像头,但是用python3打开却不行,这是为什么,python3的cv2版本是4.5.2,opencv的版本是4.1.1
引用gpt回答 有帮住的话 采纳一下
从你提供的代码和信息来看,Python 3无法打开摄像头的问题可能有以下几个原因:
cap = cv2.VideoCapture(b'nvarguscamerasrc ! ...', cv2.CAP_GSTREAMER)
参考 https://forums.developer.nvidia.com/t/install-opencv-for-python3-in-jetson-nano/74042
sudo apt-get purge libopencv*
sudo apt autoremove
查看opencv版本
pkg-config opencv --modversion
若没有显示说明已经卸载成功
该问题可能是由于Jetson Nano上的Python3没有正确关联到OpenCV导致的。根据参考资料中的信息,您可以通过以下步骤解决该问题:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
下载并安装OpenCV。根据参考资料中的段落3,您可以从OpenCV官网下载源代码,并按照指示进行编译和安装。注意要选择与您当前OpenCV版本相对应的源代码版本。
配置Python3关联到安装的OpenCV库。为了确保Python3正确关联到您所安装的OpenCV库,您可以执行以下步骤:
sudo gedit /etc/ld.so.conf
sudo ldconfig
sudo gedit /etc/bash.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
sudo ln -sf /usr/bin/python3 /usr/bin/python
然后运行您的代码并尝试打开摄像头,看看是否成功。
如果以上步骤没有解决问题,可能是由于Python3和OpenCV版本之间的不兼容性或其他原因导致的。在这种情况下,您可能需要升级或降级Python3和OpenCV的版本,以确保它们能够正确地配合使用。这需要进一步的研究和实践。
希望这些步骤能够帮助您解决问题。如果您有任何其他问题或需要进一步的帮助,请随时告诉我。