グレースケールへの焼き増しをやろうとしたら失敗しました!!
import cv2
import os
import glob
def colorize_grayscale(grayscale_path, color_path, output_path):
try:
grayscale_img = cv2.imread(grayscale_path, cv2.IMREAD_GRAYSCALE)
color_img = cv2.imread(color_path)
if grayscale_img is None:
print(f"Error: Could not read grayscale image from {grayscale_path}")
return False
if color_img is None:
print(f"Error: Could not read color image from {color_path}")
return False
# カラー画像をグレースケール画像のサイズにリサイズ
grayscale_img_size = (grayscale_img.shape[1], grayscale_img.shape[0])
color_img_resized = cv2.resize(color_img, grayscale_img_size)
grayscale_img_3c = cv2.cvtColor(grayscale_img, cv2.COLOR_GRAY2BGR)
hsv_color_img = cv2.cvtColor(color_img_resized, cv2.COLOR_BGR2HSV)
hsv_grayscale_img = cv2.cvtColor(grayscale_img_3c, cv2.COLOR_BGR2HSV)
hsv_grayscale_img[..., 0] = hsv_color_img[..., 0]
hsv_grayscale_img[..., 1] = hsv_color_img[..., 1]
colored_grayscale_img = cv2.cvtColor(hsv_grayscale_img, cv2.COLOR_HSV2BGR)
cv2.imwrite(output_path, colored_grayscale_img)
print(f"Successfully processed and saved: {output_path}")
return True
except Exception as e:
print(f"Error processing images {grayscale_path} and {color_path}: {e}")
return False
def process_directory(grayscale_path, color_dir, output_dir):
if not os.path.exists(output_dir):
os.makedirs(output_dir)
print(f"Created output directory: {output_dir}")
color_images = glob.glob(os.path.join(color_dir, '*'))
if not color_images:
print(f"No color images found in directory: {color_dir}")
return
for i, color_path in enumerate(color_images):
file_extension = os.path.splitext(color_path)[1]
output_path = os.path.join(output_dir, f'output_{i}{file_extension}')
success = colorize_grayscale(grayscale_path, color_path, output_path)
if not success:
print(f"Failed to process: {color_path}")
if __name__ == "__main__":
grayscale_image_path = '/home/owner/colorize_grayscale/monochrome.png'
color_images_dir = '/home/owner/colorize_grayscale/画像画像'
output_dir = '/home/owner/colorize_grayscale/新規作成'
process_directory(grayscale_image_path, color_images_dir, output_dir)
一見なんの問題も無さそうなコードですが、実は失敗してます。
こちらにも掲載しましたが、恐らくライブラリやデフォルトコードの設定で既にバグが起きてるレベルの失敗です。
画像を作ってみると分かりますが、生成結果が割と暗めになります。一から理論を構築しないといけません。
上記マガジンの18~41を見れば、納得すると思います。
ちなみに、暗い心情を表現したい場合は、こちらを利用するのも悪くはないでしょう。ただ、芸術的価値があるかどうかはなんとも言えません。
この記事が参加している募集
note限定で、みんなのフォトギャラリーに無償で大量の画像を順次UPする予定です!ですが、ペタバイトクラスで供給するとなると、容量が一杯になり、皆さんのサポートが必要となります!これからも画像をどんどん供給していくので、サポートをお願いします!