opencv_pythonは、データ拡張に使用できるバッチ画像の色変換を実現します

形質転換の原理HSV

アルゴリズムフロー:cv2は、ファイル内の画像のrgb値を順番に読み取り、それをhsvに変換し、hsvのh(つまり色相)値を変更して複数の色変換された画像を生成することにより、画像の色を変更します(データ拡張に使用できます)。

あまりナンセンスではありませんが、コード(2つのフォルダーのパスを使用するときは、独自の入力パスと出力パスに変更することを忘れないでください。フォルダーの下の画像には、1、2、3、...の順序で名前が付けられます)。 :

import cv2

num = 0 #读取的图片序号 
num_max = 7 #图片总数量
hue_change = 5 #色调改变值 步长
count = 0 #记录每张图片生成的数量

while 1:
    img_name = 'C:/Users/hq/Desktop/person_img/img/%s.jpg' % str(num+1)
    img=cv2.imread(img_name, cv2.IMREAD_COLOR)    # 打开文件
     
    # 通过cv2.cvtColor把图像从BGR转换到HSV
    img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
     

    turn_green_hsv = img_hsv.copy()
    # 色调hue变化范围5——50
    for i in range(1,11):
        turn_green_hsv[:, :, 0] = (turn_green_hsv[:, :, 0] + hue_change*i) % 180
        turn_green_img = cv2.cvtColor(turn_green_hsv, cv2.COLOR_HSV2BGR)

        cv2.imwrite('C:/Users/hq/Desktop/person_img/color_change_img/%s_%s.jpg'%(str(num+1), str(count+1)), turn_green_img)
        print("successfully save %s_%s pic" %(str(num+1), str(count+1)))
        count += 1

    if num == num_max - 1:
        exit(0)
    
    count = 0
    num += 1

演算結果:


これは作者の入力フォルダの下の写真です:
ここに画像の説明を挿入します
これは出力フォルダの結果です:
ここに画像の説明を挿入します
注:作者のプリセットトーン変換値は5〜50であり、読者は必要に応じてステップ長とhの範囲を設定できます。

おすすめ

転載: blog.csdn.net/weixin_44414948/article/details/106077973