繁体   English   中英

如何在 OpenCV Python 中创建不同颜色的框架?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM