Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Matplotlib 为什么要在imshow()中传递3个点来绘制hsv?_Matplotlib_Image Processing_Data Visualization_Data Science_Scikit Image - Fatal编程技术网

Matplotlib 为什么要在imshow()中传递3个点来绘制hsv?

Matplotlib 为什么要在imshow()中传递3个点来绘制hsv?,matplotlib,image-processing,data-visualization,data-science,scikit-image,Matplotlib,Image Processing,Data Visualization,Data Science,Scikit Image,我正在浏览一些视频和文件,在那里我遇到了一个代码,如下所示: im_hsv = color.rgb2hsv(im) plt.gray() plt.figure(figsize=(10,8)) plt.subplot(221), plt.imshow(im_hsv[...,0]), plt.title('h', size=20), plt.axis('off') plt.subplot(222), plt.imshow(im_hsv[...,1]), plt.title('s', size=20

我正在浏览一些视频和文件,在那里我遇到了一个代码,如下所示:

im_hsv = color.rgb2hsv(im)

plt.gray()
plt.figure(figsize=(10,8))
plt.subplot(221), plt.imshow(im_hsv[...,0]), plt.title('h', size=20), plt.axis('off')
plt.subplot(222), plt.imshow(im_hsv[...,1]), plt.title('s', size=20), plt.axis('off')
plt.subplot(223), plt.imshow(im_hsv[...,2]), plt.title('v', size=20), plt.axis('off')
plt.subplot(224), plt.axis('off')
plt.show()
在代码的第3-5行中,为什么有三个点后跟0?
没有这些点,我只能得到一条垂直线

..
符号称为Python省略号对象。当您尝试分别绘制h、s和v通道时,图像由3个维度组成,每个维度都应使用“:”表示。相反,您可以简单地使用省略号对象
im\u hsv[…,0]
等于
im\u hsv[:,:,0]
。它可能看起来不必要,但当您处理3个以上的维度时,它会很有用,并提高可读性。

..
意味着忽略前面的所有维度。因此,
im\u hsv[…,0]
相当于
im\u hsv[:,:,0]
。你可以在Numpy中使用省略号(三个点)来表示“在我选择使用的位之前(或之后)有多少通道/维度。”@QuangHoang感谢你澄清疑问。@MarkSetchell感谢你的澄清谢谢你的解释。这真的很有帮助。