Я пытаюсь сделать что-то вроде длины волны с помощью opencv.По большей части, я понял это правильно, за исключением некоторых проблем с плавностью, которые создают полосы в изображении
Вот код
#make ChroMAX torus
#diametre of torus
dia = 1000
#size of steps to circle torus
degstepsize = 360 / dia * pi
#number of steps
degstepno = int(360 / degstepsize)
#a third of degstepno
third = int(degstepno / 3)
#number of steps for 255 in a third
colstep = 255 / third
#making base colour ring
baseCol = []
#blue to green sector
for i in range(third):
baseCol.append((int(colstep * (third - i)),int(colstep * i),0))
#green to red
for i in range(third):
baseCol.append((0,int(colstep * (third - i)),int(colstep * i)))
#red to blue
for i in range(third):
baseCol.append((int(colstep * i),0,int(colstep * (third - i))))
baseCol = tuple(baseCol)
torus = np.ones((degstepno,100,3), np.uint8) * 30
for i in range(len(torus)):
for y in range(100):
torus[i,y] = baseCol[i]
gui.add(cv2imgload(torus),'Torus')
gui.update()
А вот изображение:
В конце концов, изображение будет обернуто в пончик.Причина, по которой я разделил тор по периметру вместо 360 градусов, заключалась в том, что я мог обеспечить заполнение каждого пикселя, поскольку тор будет вытянут из его центра (я не уверен, что вы поймете)