我想在Python中获取图像大小,就像在C++中那样。
int w = src->width;
printf("%d", 'w');
使用openCV和numpy很容易,像这样:
import cv2
img = cv2.imread('path/to/img',0)
height, width = img.shape[:2]
numpy
来实现这个? - virtualxtc对我来说,最简单的方法是获取image.shape返回的所有值:
height, width, channels = img.shape
如果您不想要通道数(用于确定图像是BGR还是灰度图像),只需删除该值即可:
如果您不需要通道数,则可以删除该值。height, width, _ = img.shape
使用模块 cv
中的函数 GetSize
,并将您的图像作为参数传递。它会返回一个包含两个元素(宽度和高度)的元组:
width, height = cv.GetSize(src)
我使用numpy.size()来实现相同的功能:
import numpy as np
import cv2
image = cv2.imread('image.jpg')
height = np.size(image, 0)
width = np.size(image, 1)
import cv2
# read image
img = cv2.imread('/home/ubuntu/Walnut.jpg', cv2.IMREAD_UNCHANGED)
# get dimensions of image
dimensions = img.shape
# height, width, number of channels in image
height = img.shape[0]
width = img.shape[1]
channels = img.shape[2]
来自另一个教程: https://www.pyimagesearch.com/2018/07/19/opencv-tutorial-a-guide-to-learn-opencv/
image = cv2.imread("jp.png")
(h, w, d) = image.shape
请在发布答案之前仔细检查。
from PIL import Image
import os
def get_image_dimensions(imagefile):
"""
Helper function that returns the image dimentions
:param: imagefile str (path to image)
:return dict (of the form: {width:<int>, height=<int>, size_bytes=<size_bytes>)
"""
# Inline import for PIL because it is not a common library
with Image.open(imagefile) as img:
# Calculate the width and hight of an image
width, height = img.size
# calculat ethe size in bytes
size_bytes = os.path.getsize(imagefile)
return dict(width=width, height=height, size_bytes=size_bytes)
我相信只需要 img.shape[-1::-1]
就更好了。
您可以使用image.shape
来获取图像的尺寸。它返回3个值。第一个值是图像的高度,第二个是宽度,最后一个是通道数。在这里您不需要最后一个值,因此可以使用以下代码获取图像的高度和宽度:
height, width = src.shape[:2]
print(width, height)
->
这个语法是干什么用的?我以前从来没见过... - Yatharth Agarwal.
)呢? - Yatharth Agarwala->b
等同于(*a).b
。 - Gabi Purcaru*
操作符是做什么用的呢?在 Python 中它可以打开元组或列表... - Yatharth Agarwal