如何用matplotlib imread获取所有蓝色像素的坐标?
How to get the coordinates of all blue pixels with matplotlib imread?
我想使用 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])
我想使用 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])