2つの異なる画像があります。
そして
ご覧のとおり、この2つは人間の観点からは明らかに「同じ」です。次に、それらが同じであることをプログラムで検出します。私はRuby gemと呼ばれるrmagick
を介して次のように画像マジックを使用しています:
img1 = Magick::Image.from_blob(File.read("image_1.jpeg")).first
img2 = Magick::Image.from_blob(File.read("image_2.jpeg")).first
if img1.difference(img2).first < 4000.0 # I have found this to be a good threshold, but does not work for cropped images
puts "they are the same!!!"
end
これは、同じ比率/トリミングを持つ画像に適していますが、トリミングがわずかに異なり、同じ幅にサイズ変更されている場合は理想的ではありません。
トリミングが異なる画像にそれを行う方法はありますか?私は次のようなことを言うことができる解決策に興味があります。その90%。
PS。それが役立つ場合は、画像をより高い解像度で取得できます(例:ダブル)
find_similar_region メソッドを考えます。 2つの画像のうち小さい方をターゲット画像として使用します。画像とターゲット画像のファズ属性にさまざまな値を試します。