我有一个Numpy数组类型的矩阵.我如何将其作为图像写入磁盘?任何格式都有效(png,jpeg,bmp ......).一个重要的限制是PIL不存在.
我这样创建了一个数组:
import numpy as np
data = np.zeros( (512,512,3), dtype=np.uint8)
data[256,256] = [255,0,0]
Run Code Online (Sandbox Code Playgroud)
我想要做的是在512x512图像的中心显示一个红点.(至少从...开始......我想我可以从中找出其余部分)
我在Python OpenCV中加载彩色图像并绘制相同的图像.然而,我得到的图像的颜色都混淆了.
这是代码:
import cv2
import numpy as np
from numpy import array, arange, uint8
from matplotlib import pyplot as plt
img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR)
bw_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
images = []
images.append(img)
images.append(bw_img)
titles = ['Original Image','BW Image']
for i in xrange(len(images)):
plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
Run Code Online (Sandbox Code Playgroud)
我有一个numpy值范围为的数组0-255。我想将其转换为3通道RGB图像。我使用了该PIL Image.convert()函数,但是它将其转换为灰度图像。
我正在使用Python PIL库numpy通过以下代码将数组转换为图像:
imge_out = Image.fromarray(img_as_np.astype('uint8'))
img_as_img = imge_out.convert("RGB")
Run Code Online (Sandbox Code Playgroud)
输出将图像转换为3个通道,但显示为黑白(灰度)图像。如果我使用以下代码
img_as_img = imge_out.convert("R")
Run Code Online (Sandbox Code Playgroud)
表明
error conversion from L to R not supported
Run Code Online (Sandbox Code Playgroud)
如何将numpy数组正确转换为RGB图片?