直观了解图片的三通道像素值在三维数组中的表示(python)

最近一直在折腾C#与python之间数据的对接,其实我想做的是,C#端采集图片通过rpc技术发送给服务端的人工智能框架tensorflow做处理,但是我对tensorflow这鬼玩意不是很熟悉,总觉得它的数据类型怪怪的,python又不像python,如果你的C#端把图片转成字节数组发送过去,服务端的python是能接收,但好像又转不成tensorflow的数据类型,我有一个不太靠谱的想法是:C#端把图片转成字节数组发送过去,服务端的python接收并保存为图片文件,tensorflow读取该图片文件做处理并把该文件删除,但是这样做io操作过大,不知你有什么好的想法吗?

这篇文章能出来是由于我还有另外一个想法,就是C#端获取图片的像素并拼接成三维数组的字符串,发送字符串过去,然后python服务端解析成tensorflow能够操作的三维数组的数据类型,但是这样C#端效率又太低了,所以还在单元功能测试阶段

好了,废话到此结束

代码很简单,直接上代码了,相信你一定能看出规律的

import numpy as np
import matplotlib.pyplot as plt
 
image=np.array([[[1, 0, 0],#第一列,红色   R=1,G=0,B=0
        [0, 1, 0],#第二列  绿色   R=0,G=1,B=0
        [0, 0 ,1] #第三列  蓝色   R=0,G=0,B=1
       ],# ---------------->   第一行
       [
        [0.1,0.2,0.3],
        [0.1,0.2,0.3],
        [0.1,0.2,0.3],
       ],#------------------> 第二行
       [
        [0.1,0.2,0.3],
        [0.1,0.2,0.3],
        [0.1,0.2,0.3],
       ],# -----------------> 第三行
       [[1, 0, 0],
        [0, 1, 0],
        [0, 0 ,1]
       ],# -----------------第四行
      ])

plt.imshow(image)

运行结果如下图:

顺便提一句,从图片文件中读取出来的是三维数组,上面的image使用三维列表好像也可以,二维数组(列表)能够表示灰度图片

发布了66 篇原创文章 · 获赞 48 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/zxy13826134783/article/details/103511601