Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将x和y像素的颜色更改为蓝色?_Python_Numpy_Opencv - Fatal编程技术网

Python 如何将x和y像素的颜色更改为蓝色?

Python 如何将x和y像素的颜色更改为蓝色?,python,numpy,opencv,Python,Numpy,Opencv,这将提供以下输出: 如何将这些黑色像素的颜色更改为蓝色? 如果我这样做 它给出了一个错误,称为“使用序列设置数组元素”。您的圆不是3D数组,而是2D数组((400400)),因此没有RGB维度。试着把它做成一个3D阵列 circle=np.one((4004003))*255 然后,你就能做到 circle[int(x)][int(y)]=[255,0,0] 由于阵列是二维的,因此颜色只能是灰度。若要解决此问题,请在阵列形状中添加另一个维度: circle[int(x)][int(y)] =

这将提供以下输出:

如何将这些黑色像素的颜色更改为蓝色? 如果我这样做


它给出了一个错误,称为“使用序列设置数组元素”。

您的
不是3D数组,而是2D数组(
(400400)
),因此没有RGB维度。试着把它做成一个3D阵列

circle=np.one((4004003))*255
然后,你就能做到

circle[int(x)][int(y)]=[255,0,0]

由于阵列是二维的,因此颜色只能是灰度。若要解决此问题,请在阵列形状中添加另一个维度:

circle[int(x)][int(y)] = (255,0,0)
对于numpy数组,可以使用逗号进行嵌套切片:

import numpy as np
import cv2

img = np.ones((400, 400, 3), np.uint8) * 255
circle = np.ones((400, 400, 3)) * 255  
最后,您可以执行
np.full((400400,3),而不是执行
np.one((400400,3))*255

import numpy as np
import cv2

img = np.ones((400, 400, 3), np.uint8) * 255
circle = np.ones((400, 400, 3)) * 255  
for theta in np.arange(0, 2*np.pi, 0.01):
    for r in np.arange(150, 160, 1):
        x = 200 + r * np.cos(theta)
        y = 200 + r * np.sin(theta)
        circle[int(x), int(y)] = 255, 0, 0

cv2.imshow('c',circle)