我正在尝试使用opencv在1080p相机上拍摄照片,但是,只希望照片为224x224像素。我如何使用opencv做到这一点。
我目前有以下代码:
Import cv2
Cap = cv2.VideoCam(0)
Cap.set(3, 224)
Cap.set(4, 224)
Ret, frame = cap.read()
但是,当我查看框架的形状时,它不是(224,224,3)。有人可以帮我弄清楚如何使其输出我想要的像素尺寸
最佳答案
当您说想要224x224的图片时,这取决于您的意思。如果我们以1920x1080的图片开始,则可能需要:
因此,在下面的假设中,您已经使用类似的方法将摄像机的帧读取到名为
im
的变量中:...
...
ret, im = cap.read()
如果要(A),请使用:
# If you want the top-left corner
good = im[:224, :224]
如果要(B),请使用:
# If you want the centre
x = h//2 - 112
y = w//2 - 112
good = im[x:x+224, y:y+224]
如果要(C),请使用:
# If you want the largest square, scaled down to 224x224
y = (w-h)//2
good = im[:, y:y+h]
good = cv2.resize(good,(224,224))
如果需要(D),请使用:
# If you want the entire frame distorted to fit 224x224
good = cv2.resize(im,(224,224))
关键字:图像处理,视频,1920x1080、1080p,裁剪,扭曲,最大正方形,中央部分。左上角,Python,OpenCV,框架,提取。
关于python - 在opencv中具有特定像素高度和宽度的视频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59419664/