我想编写一个脚本来根据连接矩阵创建图像。基本上,只要矩阵中有一个“ 1”,我都希望该区域在图像中被阴影化。例如-
我使用Photoshop创建了这张图片。但是我有一个很大的数据集,所以我将不得不自动化该过程。如果有人能指出正确的方向,那将真的很有帮助。
编辑
使用脚本后得到的图像是这个。这是因为矩阵很大(19 x 19)。有什么办法可以提高这张图片的可见度,使黑白框显得更清晰?
答案 0 :(得分:3)
在这种情况下,我建议结合使用opencv
和numpy
。
创建numpy.array
的二维dtype='uint8'
,其中黑色的0
和白色的255
。例如,要获得2x2数组,其左上方为白色,右下方为白色,左下方为黑色,右上方为黑色,则可以使用以下代码:
myarray = numpy.array([[255,0],[0,255]],dtype='uint8')
然后您可以使用opencv2将该数组另存为图像:
cv2.imwrite('image.bmp',myarray)
其中数组的每个单元格都由单个像素表示,但是,如果要放大(例如,每个单元格由5x5正方形表示),则可以使用numpy.kron
函数,并使用以下一行: / p>
myarray = numpy.kron(myarray, numpy.ones((5,5)))
写图像之前
答案 1 :(得分:3)
也许您可以尝试一下!
import matplotlib.cm as cm
# Display matrix
plt.imshow(np.random.choice([0, 1], size=100).reshape((10, 10)),cmap=cm.binary)
答案 2 :(得分:2)