我想使用 matplolib 的 imshow 将 jpeg 图像的所有蓝色像素附加到列表中。当我启动我的代码时,我没有得到 RGB 代码结果:'array([89, 67, 28], dtype=uint8), array([51, 53, 16], dtype=uint8),'等等。 . 这里出了什么问题?
导入 matplotlib.pyplot 作为 plt 导入 matplotlib.image 作为 mpimg
control = mpimg.imread('jpeg.jpg')
ys = control.shape[0] #length of image
xs = control.shape[1] # image width
pixelcoords= []
for x in range(xs):
for y in range(ys):
# if pixel is blue
pixelcoords.append(control[x][y])
print(pixelcoords)
读取图像时,您将获得一个 numpy 尺寸数组(宽 x 高 x [R,G,B, alpha])。
t = mpimg.imread("path/Test1.PNG")
现在,您可以通过沿宽度和高度维度(由“:”表示)以及 RGB,alpha 堆栈中的第 3 个维度获取所有内容来访问蓝色图层。这为您提供了一个二维数组,其中每个蓝色像素都有一个非零值。要查找非零条目的所有坐标,您可以使用 np.nonzero 函数,该函数将它们的坐标作为 X 和 Y 数组
X,Y = np.nonzero(t[:,:,2])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句