img = cv2.imread('img/dream.jpg')
(b,g,r)=cv2.split(img)
color = ('b','g','r')
b = cv2.calcHist([img],[0],None,[256],[0, 256])
g = cv2.calcHist([img],[1],None,[256],[0, 256])
r = cv2.calcHist([img],[2],None,[256],[0, 256])
for i, col in enumerate(color):
histr = cv2.calcHist([img],[i],None,[256],[0, 256])
plt.plot(histr, color = col)
plt.xlim([0, 256])
with open('output.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow('BGR')
for row in rows:
writer.writerow(row)
我正在尝试读取图片,并显示每个像素的RGB计数。 在尝试将数据写入csv文件之前,一切都很酷。 看起来像这样:
B,G,R
[0.],[0.],[631788.]
[0.],[0.],[418355.]
[0.],[0.],[105815.]
我需要做的就是从数组中删除“ [”和“]”。
我是python新手,我不确定该数组是元组字典还是其他。
我尝试了replace()方法,但是它出现了一条错误消息 'numpy.ndarray'对象没有属性'replace'
答案 0 :(得分:1)
您需要通过
将list
转换为String
list_string = ''.join(list_name)
如果您有matrix
您将需要
for item in list_outer:
item = ''.join(item)
list_outer = ''.join(list_outer)
答案 1 :(得分:1)
数组中的每个值都在其自己的列表中。在python中,您可以使用索引访问列表的元素。
对于您而言,您可以使用以下方法转换列表数组(每个列表只有一个值i[0]
)
delisted_array = np.array([i[0] for i in your_array_of_lists])
此列表理解为:“从此数组中找到的每个(列表)的第一个索引中获取值,并将这些值放入列表中。”
例如。
In [70]: a = np.array([[1],[2]])
In [71]: a
Out[71]:
array([[1],
[2]])
In [72]: delisted_array = np.array([i[0] for i in a])
In [73]: delisted_array
Out[73]: array([1, 2])