python - cv2.Resize() 在 OpenCV 编译后不起作用
问题描述
所以我想在树莓派 4 板上测试 python-opencv 库和最新编译的 opencv 之间的性能差异。在此更改cv2.resize()
停止在我的脚本中工作并且仅从我的网络摄像头输出最大分辨率之后。我也尝试了 imutils 库但没有成功。我尝试同时使用:
cv2.CAP_PROP_FRAME_WIDTH
cv2.CAP_PROP_FRAME_HEIGHT
但我只得到一个调整大小的窗口而不是框架
此外,我收到此错误 GStreamer 警告:无法查询视频位置:状态 = 0,值 = -1,持续时间 = -1
我错过了什么?
更新:最少的代码
import cv2
from imutils.video import FPS
cap = cv2.VideoCapture(0)
#cap.set(cv2.CAP_PROP_FRAME_WIDTH,960)
#cap.set(cv2.CAP_PROP_FRAME_HEIGHT,540)
fps = FPS().start()
font = cv2.FONT_HERSHEY_DUPLEX
while cap.isOpened():
ret, frame = cap.read()
small_frame = cv2.resize(frame, (0, 0), fx=0.75, fy=0.75)
fps.update()
fps.stop()
cv2.putText(small_frame,"FPS {:.1f}".format(fps.fps()),
(10,30),font, 1.0, (255, 255, 255), 1)
cv2.imshow("Frame",small_frame)
key = cv2.waitKey(1)
if key == ord('q'):
break
if key == ord('p'):
cv2.waitKey(-1)
cap.release()
cv2.destroyAllWindows()
解决方案
你正在使用比例和尺寸 0 一起试试这个:
import cv2
img = cv2.imread('/home/img/python.png', cv2.IMREAD_UNCHANGED)
print('Original Dimensions : ',img.shape)
scale_percent = 60 # percent of original size
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
print('Resized Dimensions : ',resized.shape)
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
推荐阅读
- android - 如何修复 vmlinux.o 错误和交叉编译错误
- vue.js - vue:你可能需要一个合适的加载器来处理这个文件类型
- java - 如何正确编写扩展功能而不是导入语句?
- batch-file - 批量将文件移动到不包括父目录的子目录中
- java - 如何将字符串添加到 TextView / ScrollView?
- scikit-learn - ScikitLearn 的 MLPClasssifier 在输出层使用什么样的激活?
- powerbi - 按相同 ID 分组的 Power BI Sum 单元格
- angular - Angular 表单验证 - 获取所有验证错误
- php - 将数据从 CSV 读入单个数组或单个 json
- java - 从侦听器列表中删除侦听器