Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays numpy数组集图像维度opencv_Arrays_Image_Numpy_Opencv - Fatal编程技术网

Arrays numpy数组集图像维度opencv

Arrays numpy数组集图像维度opencv,arrays,image,numpy,opencv,Arrays,Image,Numpy,Opencv,我从没有指定尺寸的成像设备获取原始灰度帧。 但我知道原始帧是342x260像素。 初始处理后,我有一个uint16 numpy数组(1d数组)。如何使用cv2.imshow显示阵列 cv2.imshow('image', npframe) cv2.waitKey(0) cv2.destroyAllWindows() 我所得到的只是一个看起来很古怪的窗口,它将我的屏幕延伸到了整个高度: 您可以使用npframe.shape获得图像大小。对于灰度图像,这将返回一个包含两个元素的元组(y,x),如高

我从没有指定尺寸的成像设备获取原始灰度帧。 但我知道原始帧是342x260像素。 初始处理后,我有一个uint16 numpy数组(1d数组)。如何使用cv2.imshow显示阵列

cv2.imshow('image', npframe)
cv2.waitKey(0)
cv2.destroyAllWindows()
我所得到的只是一个看起来很古怪的窗口,它将我的屏幕延伸到了整个高度:


您可以使用
npframe.shape
获得图像大小。对于灰度图像,这将返回一个包含两个元素的元组
(y,x)
,如高度和宽度的
(260,342)
,或者对于彩色(RGB/BGR)图像,这将返回一个包含三个元素的元组
(y,x,c)
,用于高度、宽度和通道数

您可以通过首先定义窗口名称来设置窗口大小:

cv2.namedWindow('image', cv2.WINDOW_NORMAL)
WINDOW\u NORMAL
标志将允许您调整图像大小:

cv2.resizeWindow('image', npframe.shape[1], npframe.shape[0])
其中,
npframe.shape[1]
x
维度中的图像大小,
npframe.shape[0]
y
维度中的图像大小


然后您的
cv2.imshow('image',npframe)
命令将是图像的大小。

谢谢,但是数组仅由单个数字组成,因此npframe.shape返回(88920,)。正如我所说,它的原始数据来自usb批量传输,包括元数据在内,是342x260像素,只有320x240图像。我最近将原始数据写入了一个二进制文件,imagemagik能够生成一个带有:convert-depth 16-endian lsb-size 342x260 gray:raw.bin-auto-level raw.png的图像。然后需要获取1D数组并将其映射到2D数组,因为
imshow()
希望指定的图像文件是2D数组。您获得的图像可能是一列像素,即1像素宽、88920像素高的图像。谢谢,使用“img=npframe.reforme(260342)”获得它。我现在可以显示图像,窗口也正确。