opencv-python调用摄像头,输出的画面比例问题
opencv吧
全部回复
仅看楼主
level 2
我使用opencv-python版调用摄像头,输出的画面永远有黑边。我设置的输出1280*720的图片,但是输出的图片确实是1280*720的,但是其中的画面只有4比3的比例。不知道为什么。
下面是全部代码,还请大哥们帮我看看这个。
如果问题能解决,小弟奉上10元支付宝红包。
import cv2
import numpy
import time
'''
实现了拍摄OK或者NG图片
按O拍摄OK的照片
按N拍摄NG的照片
按q退出
'''
# 调整参数实现读取视频或者调用摄像头
cap = cv2.VideoCapture(0) # 调用摄像头
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) # 分辨率
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720) # 分辨率
cap.set(cv2.CAP_PROP_FPS, 20) # 帧数
index_ok = 0
index_ng = 0
current_time = time.strftime('%Y-%m-%d<%H:%M:%S')
print(current_time)
while(cap.isOpened()):
# 从摄像头读取一帧,ret是表明成功与否
ret, frame = cap.read()
if ret:
cv2.imshow('frame', frame)
else:
break
# 监听键盘,按下q键退出
input = cv2.waitKey(1) & 0xFF
if input == ord('o'):
cv2.imwrite("./OK/ok-%s.jpg" % index_ok, frame)
index_ok += 1
print("已拍摄%s张OK图片,%s张NG图片" % (index_ok, index_ng))
elif input == ord('n'):
cv2.imwrite("./NG/ng-%s.jpg" % index_ng, frame)
index_ng += 1
print("已拍摄%s张OK图片,%s张NG图片" % (index_ok, index_ng))
if input == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
排出的图片如下图所示
图片的详细信息如下
2019年08月18日 03点08分 1
level 2
顶,有没有大神帮忙啊
2019年08月18日 03点08分 2
楼主请问有没有解决呀,我摄像头是1920*1080的也出现了这个问题
2020年03月14日 02点03分
楼主我解决了,改成cap = cv2.VideoCapture(0 + cv2.CAP_DSHOW)就可以了[真棒]
2020年03月14日 03点03分
@iammylin 优秀,找了半天终于解决了[呵呵]
2021年01月06日 03点01分
level 1
你把那两个cap.set改成
cv2.namedWindow("窗口名", 0)
cv2.resizeWindow("窗口名", 1280, 720)
2019年10月07日 03点10分 3
优秀,找了半天终于解决了[呵呵]
2021年01月06日 03点01分
这个好象不太灵光的。还是iammylin说的那个有效,实测
2021年09月17日 02点09分
level 1
[大拇指][大拇指]
2021年01月25日 00点01分 4
1