
Ubuntu日本語フォーラム

ログインしていません。
複数の画像ファイルの明るさを一定に揃えたいです。
1つであれば convert -modulate 80 などとすればよいのですが、
元の画像ファイルの明るさが各々異なるので困っています。
その為、現在は1つづつ目視で確認しながら調整しています。
ただ、私の目がいい加減なためか、後で見直すと明るさが不揃いです…。
数が多いので、できればfor文で一括処理したいのですが、
一律80ではなく画像によって50や65などとしたいので難しいです。
検索して調べたのですが、良さそうな例が見つけられません。
何か良い方法をご教授くださいますよう、お願いいたします。
オフライン
何をもって明るさとするかによると思うのですが、rlnさんが考えていらっしゃる明るさを一定にすることは難しいのではないかと思います。
軽く調べた程度ですが、影の輝度を同じにするのが一番思ったように揃えられそうです。
ですが、その影というのを各画像から抽出して…という話になるとそれ専用にプログラムを書かないとダメだとおもいます。(探せばあるとおもいますが…)
ですので、現状では目視で確認するのが妥当な手段だと考えられます。
オフライン
kogetyan様、ご回答いただきありがとうございます。
> 何をもって明るさとするか
私も明確に答えられません…見た目だけで判断しています。
ImageMagickは画像サイズの調整で使ったことがありますが、その他のオプションなどについては
よくわかっていません。
人によって感覚が違うことは承知しており、背景色などによっても感じ方が違うと思います。
ただ、人の感覚・感じ方の差に関しては無視したいと考えています。
> 影の輝度を同じにするのが一番思ったように揃えられそう
「影の輝度」を調整することで、テカってしまった部分などもうまく処理してくれるのでしょうか?
イメージが湧かず、今の私には理解が難しいです。
できれば参考URLやキーワードなどをお教えいただけないでしょうか。
初めは明るさに関する値 ( 画像全体の明るさの平均値? ) を取得し、それをある一定の値にすれば良い
と思って調べていました。
しかし、「元画像の何%」という指定の仕方( -modulate XX)しかわかりませんでした。
画像全体の明るさの平均値を取得・変更する方法はないものでしょうか?
元画像が明るすぎるので概ね80%くらいがよいのですが、ものによって60%くらいがよいなど
調整が必要な場合が多く、数も多いのでかなり面倒です。
オフライン
まだ見ていらっしゃるかわかりませんが、機械学習させて明るさを補正させる方法があるかもしれません。
具体的にどれくらいの枚数が必要かはわかりませんが、補正前と補正後の画像をできるだけ多く用意して学習させることで、画像を入力するだけで補正画像が出力される…という寸法です。
ただこれの問題点としては、この手の学習はチューニングをしないとこちらの思っているとおりに学習してくれない可能性があること、そもそも機械学習そのものが敷居が高いということでしょうか…
ちょうどいま興味がある分野でいくつかテストをしてみようと思っているところですので、画像のフォーマットやサイズ、風景なのかCG等の絵なのか等を教えていただければフィードバックできるかもしれません。
もちろんこの考え方自身間違ってる可能性も大いにありますが…
オフライン
>複数の画像ファイルの明るさを一定に揃えたいです。
私は無理だと思います。
その画像とは第三者が造った画像と思うので画像を造った人が、ある意図(最良)をもって作ったはずですから、、、。
もし自分で明るさを揃えたいのなら、その人の独自の考え方(感性)で揃えられたら良いのではないかと私は思いますが。
オフライン
kogetyan様、kkkjyoda様 ご回答ありがとうございます。
画像については、私が室内で商品をデジカメで撮影したものです。
テーブルに白い布を敷き、その上に商品を置いて撮影しています。
jpegで、サイズは 縦3000px横4000px です。
明るさを調整後、サイズ変更しています。
( サイズ変更は一括処理できるのでOK。)
同じ場所・同じ時間帯に撮影したものでも、明るさがまちまちです。
フラッシュや自動調整機能は OFF にしています。
( ONにしても、あまり変わりません… )
また、私はカメラマンではなくド素人です。
商品画像として使用するので、テカってしまったり明るさに差があるのは好ましくありません。
撮影ルームのような環境を用意することもできず、画像数も多いために質問した次第です。
< kogetyan様へ >
学習機能は面白そうですね。
条件は上記の通りですが、足りない情報がございましたらお知らせください。
よい調整方法がございましたら、またご回答いただきたいと思います。
お任せで恐縮ですが、宜しくお願いいたします。
< kkkjyoda様へ >
上記の通り、私がデジカメで撮影したものです。
明るさを一定にしたいという意図をもって頑張っているのですが、難しいです。
私の目と腕が悪いため、調整後の明るさも揃っておらず、再調整・再々調整する必要があり面倒に感じています。
仰ることはごもっともで、私も適当に済ましたいです。
しかし、社長は許してくれません…。
撮影用の金も環境もないので、コマンドで何とかしたいと思っています。
オフライン
nomalize とか auto-level といった、オプションがあるみたいなので、試してみては?
参照: http://generalworks.blogspot.jp/2011/10/imagemagick.html
オフライン
si様 ご回答ありがとうございます。
$ convert -cnannel ALL -normalize a.jpg b.jpg
※ 正しくは「-channel」のようです。
$ convert -auto-level ALL -normalize a.jpg b.jpg
※ 「unable to open image `ALL'」とエラーになるため、
$ convert -auto-level -channel ALL -normalize a.jpg b.jpg で実行しています。
2オプションですが、残念ながら微妙な差です…
目視では違いがわかり辛いものが殆どでした。
明るさはほぼ同じに見えて、調整されているのか判別が難しいです。
屋外で撮影した写真ではないからかも知れません。
しかし、今後は「-auto-level -channel ALL -normalize」も付けて実行してみます。
目の錯覚(気のせい?)かも知れませんが、仕上がりが良さそうな感じがします。
オフライン