私は少し前に年次有給休暇を取得し、彼女と長旅に行きました。途中、景色も良くて幸せな気持ちになりましたが、特に数日間ゆっくり休めなかったのでとても疲れていました。そして家までずっとぶつかることになりました。
家に帰って一休みしようとした瞬間に、次のようなメッセージが届くとは誰が想像したでしょうか:
写真を 1 つ保存してください彼女は実際に 4 日間で 200 枚の写真を撮りました。
これは私にとって少し難しいことです。第一に、私の現在の仕事では写真を切り取る必要がなく、PS はかなり前にアンインストールされています。第二に、たとえ PS があったとしても、何百枚もの写真にプリセットを適用するには、時間がかかります。疲れて眠くて、何かをしなければならないことを考えるだけで拷問です。
ちょっと迷ったので、写真をじっくり見ながら考えてみました。
元の写真の画質はまあまあなので、 , 実際にはあまり編集する必要はありません. 操作, この日は雲が多くて光があまりよくないため、写真の色が少しくすんでいます. 彩度を適切に上げ、同時に明るさを下げることができます良い写真を撮る時間です。
このとき、昔 OpenCV を眺めていたときに使った API を突然思い出しました。Python を使えば、この数百枚の写真を高速に処理できるかもしれません。
まず、HSV について説明します。HSV は色空間です。赤、緑、青の組み合わせで色を表現する RGB とは異なり、HSV は色を色相 (H)、彩度 (S)、色に分割します。明度(V)の3次元で、色の明暗や鮮やかさをより直接的に表現できるため、画像認識の分野で広く使われています。
opencv の Split() 関数を使用すると、画像の HSV 変数を分離し、それを変更してから、merge() 関数を使用して画像を合成できます。新しい画像を実現するには、彩度と明るさの効果をバッチ変更します。同時に、split() は画像の 3 つの RGB カラー チャネルを分離し、チャネルを個別に変更することもできます。
早速、操作を開始しましょう:
import cv2 import numpy as np import os def modify_image(img_path, target_dir): # 读取全部私はガールフレンドと 3 日間旅行していましたが、Python が私の精神的欠陥を治してくれました... pic = cv2.imread(img_path, cv2.IMREAD_UNCHANGED) # 将私はガールフレンドと 3 日間旅行していましたが、Python が私の精神的欠陥を治してくれました...修改为HSV pichsv = cv2.cvtColor(pic, cv2.COLOR_BGR2HSV) # 提取饱和度和明度 H,S,V = cv2.split(pichsv) # S为饱和度,V为明度 new_pic = cv2.merge([np.uint8(H), np.uint8(S*1.4), np.uint8(V*0.9)]) # 将合并后的私はガールフレンドと 3 日間旅行していましたが、Python が私の精神的欠陥を治してくれました...重置为RGB pictar = cv2.cvtColor(new_pic, cv2.COLOR_HSV2BGR) # 获取原文件名 file_name = img_path.split("/")[-1] # 将私はガールフレンドと 3 日間旅行していましたが、Python が私の精神的欠陥を治してくれました...写入目录 cv2.imwrite(os.path.join(target_dir, file_name), pictar) root, dirs, files = next(os.walk("./test/")) for item in files: img_path = os.path.join(root,item) process_image(img_path, "./target/")
3 回のクリック、5 回、2 回の追加の後、コードを取得しました。携帯電話を見るだけで、数百枚の写真が処理されました。左側が修正前、右側が修正後ですが、効果がまだ非常に明白で、色がより豊かになっていることがわかります。
すべての写真は数分で完成しました。ガールフレンドは信じられないという顔をしていましたが、結果にはとても満足していました。もちろん、彼女に私がどのように撮ったかは言いません。それをやった。
以上が私はガールフレンドと 3 日間旅行していましたが、Python が私の精神的欠陥を治してくれました...の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。