かずきち。の日記

サーバサイドエンジニアのつぶやき

フォトウェディングのプロフィール画像をジグソーパズルで作る

フォトウェディングが昨今のブーム


引用:
https://wedding.mynavi.jp/contents/special_contents/photo_wedding/

ウェディングというと多額の費用がかかりますが、昨今のコロナ禍ではフォトウェディングがブームです。
こんな写真を撮影したりします。
でも今まで撮った写真はいっぱいあるし、思い出いっぱいのプロフィール写真を作りたいという方もいるかと思います。

今回はこの思い出いっぱいの写真をモザイクアートで加工していくことを目的とします。

写真同士の類似度を計算する

画像の色差を計算して、差が少ないということはその画像は似ているということです。


引用:
https://storage.googleapis.com/zenn-user-upload/9vbepm9x49hougm4oxp1d89h3fb0

画像を分割して、色空間の色差を計算していきます。
色差が小さいということは周りと色が似ているのでモザイクにすることができるということです。


引用:
https://www.s-roses.com/blog/10514

今回はこの画像にモザイクをかけていきます。

import imgsim

img0 = cv2.imread("sample.jpg")
img1 = cv2.imread("sample2.jpg")

vtr = imgsim.Vectorizer()
vec0 = vtr.vectorize(img0)
vec1 = vtr.vectorize(img1)

dist = imgsim.distance(vec0, vec1)

print("distance =", dist)

下準備は写真が類似しているかをベクトルから判断しないといけません。
distanceっていうのがここでいう写真の類似を表すので、ここを計算してあげればあとは並べていくだけです。
似ている動物の写真を配置します。

動物のデータで書き換えた画像がこちらになります。
写真はGoogleから拝借してきました。