import cv2 vc = cv2.VideoCapture('D:/pythonProject/datafloc/900ml50r.mp4') # 读入视频文件 c = 1 d = 0 if vc.isOpened(): # 判断是否正常打开 rval, frame = vc.read() else: rval = False timeF = 30 # 视频帧计数间隔频率 # try: while rval: # 循环读取视频帧 rval, frame = vc.read() if (c % timeF == 0): # 每隔timeF帧进行存储操作 d = d+1 cv2.imwrite('D:/pythonProject/datafloc/900ml50r/900ml50r' + str(d) + '.jpg', frame) # 存储为图像 print(d) c = c + 1 cv2.waitKey(1) vc.release()根据此段代码将图片裁剪输出为256x256的形式并保证图片不被压缩
时间: 2024-02-15 17:06:10 浏览: 35
可以在存储为图像的代码行中添加如下代码,将其裁剪为256x256的形式并保证图片不被压缩:
```python
img_cropped = frame[0:256, 0:256]
cv2.imwrite('D:/pythonProject/datafloc/900ml50r/900ml50r' + str(d) + '.png', img_cropped, [cv2.IMWRITE_PNG_COMPRESSION, 0])
```
其中,`img_cropped`是通过对原始图像进行裁剪得到的256x256的图像。`[cv2.IMWRITE_PNG_COMPRESSION, 0]`参数用于指定PNG格式的压缩程度,0表示不压缩。这样就可以保证图片不被压缩了。
相关问题
import cv2 vc = cv2.VideoCapture('D:/pythonProject/datafloc/900ml50r.mp4') # 读入视频文件 c = 1 d = 0 if vc.isOpened(): # 判断是否正常打开 rval, frame = vc.read() else: rval = False timeF = 30 # 视频帧计数间隔频率 # try: while rval: # 循环读取视频帧 rval, frame = vc.read() if (c % timeF == 0): # 每隔timeF帧进行存储操作 d = d+1 cv2.imwrite('D:/pythonProject/datafloc/900ml50r/900ml50r' + str(d) + '.jpg', frame) # 存储为图像 print(d) c = c + 1 cv2.waitKey(1) vc.release()根据此段代码将图片输出为256x256的形式
可以在存储为图像的代码行中添加如下代码,将其调整为256x256的形式:
```python
cv2.imwrite('D:/pythonProject/datafloc/900ml50r/900ml50r' + str(d) + '.jpg', cv2.resize(frame, (256, 256)))
```
其中,`cv2.resize()`函数用于调整图像大小,第一个参数为原始图像,第二个参数为目标大小。
我用开发板图传到http://192.168.1.251:8080/网址,然后使用cap = cv2.VideoCapture("http://192.168.1.251:8080/")读取视频报错
这个报错可能是由于视频流无法正常打开导致的。你可以尝试以下几个方法:
1. 确认你的开发板是否已经成功连接到了你的本地网络,你可以在浏览器中输入http://192.168.1.251:8080/来检查看是否能够正常访问到视频流。
2. 确认你的代码是否正确,你可以把cv2.VideoCapture("http://192.168.1.251:8080/")改成cv2.VideoCapture(0)来尝试从本地摄像头读取视频,看看是否能够正常工作。
3. 确认你的OpenCV版本是否支持网络视频流的读取,你可以在命令行中使用cv2.getBuildInformation()来查看你的OpenCV是否支持网络视频流的读取。
4. 确认你的网络是否稳定,可能是由于网络不稳定导致的视频流无法正常打开。你可以尝试使用其他网络环境或者重新启动网络设备来解决问题。