[英]How do I create frames of different colours in OpenCV Python?
我想创建具有从黑色到白色渐变颜色变化的帧。例如,第一帧应该是黑色(0,0,0),然后是(50,0,0),然后是(50,50,0)...... ..一直到(255,255,255)。 但我只能用这段代码生成一个帧(0,0,0)。 是否可以为每个图像创建一个按顺序编号的 jpg 文件?
import cv2
import numpy as np
def create_blank(width, height, rgb_color=(0, 0, 0)):
"""Create new image(numpy array) filled with certain color in RGB"""
# Create black blank image
image = np.zeros((height, width, 3), np.uint8)
# Since OpenCV uses BGR, convert the color first
color = tuple(reversed(rgb_color))
# Fill image with color
image[:] = color
return image
for i in range(0,50,255):
for j in range(0,50,255):
for k in range(0,50,255):
image=create_blank(width, height, rgb_color=(i,j,k))
cv2.imwrite('img.jpg',image)
import cv2
import numpy as np
def create_gradient(width, height):
image = np.zeros((1,width,3), dtype='uint8') # starting image with one row black pixels
for row in range(height):
pixel_value = int(row*255/height)
new_row = np.ones((1,width,3), dtype='uint8')*pixel_value # creating new row
image = np.concatenate((image, new_row)) # concatenate images
return image
img = create_gradient(200,500)
cv2.imshow('gradient', img)
cv2.waitKey(0)
如果你想从垂直切换到水平,只需将高度与宽度交换即可。 要按顺序保存图像,您应该在 for 循环中添加cv2.imwrite
。
从上面的代码返回看起来像这样:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.