アプリ版:「スタンプのみでお礼する」機能のリリースについて

いちおうC#でやってますが、あくまで考え方、概念、アルゴリズムの回答で構いません

今取りあえず、ある画像の全ピクセルのRGBとHSVデータを配列として持っているとします
色情報[x,y][R]に赤
色情報[x,y][G]に緑
色情報[x,y][B]に青

同様に
HSV[x,y][H]にH
HSV[x,y][S]にS
HSV[x,y][V]にV

ここから、配列をfor文で回してもなんでもいいんですが、画像の色情報を取得して
1.単色刷り画像の取得(白、黒、ある色のみで高声された画像、閾値でふるい分け)
(黒白赤,黒白薄緑とか)

を実現するためにどうすればいいでしょうか?
(全部の色を混ぜてその色の彩度で判定・・・しらたちょっと予想と違う検索結果に・・・)

A 回答 (3件)

「画像の 2 値化」というやつかな? 単純に一つのピクセルの色値をある敷居値で振り分けると、絵として判別しがたくなりますね。


パターンディザ (Pattern Dither) や誤差拡散法 (Error Diffusion Method)
というのを調べてみるとよいと思います。

参考urlは検索で最初に出てきたページ

参考URL:http://koujinz.cocolog-nifty.com/blog/2009/04/po …
    • good
    • 0

> 単色刷り画像の取得



というのが、何を意味しているのかちょっとわかりません。
・単色、ということで、Hを全て同じ値にする
・明るさVだけを取りだしたグレースケール画像
・現在の色と白、黒、特定の色の3色の「距離」を計算して、もっとも「近い」ものに置換
あたりでしょうか?

この回答への補足

すみません 説明不足でした

・ある画像ファイルAが単色刷りであるかどうかの判別

ということです

僕の質問の仕方だと違う風に見えますね

つまり、カラーの画像ファイルと単色刷り画像ファイルをふるい分けるプログラムを作りたいということです

補足日時:2012/02/05 06:19
    • good
    • 0

そういうことならば



単色画像は、色が少ないのが特徴なので、「色」を表わす数値の分布を調べ、特定の範囲に集中していたら単色と判定する。

HSVなら、Hが色なので、Hの分布を調べるのがよいかと。
ただ、Sが低いと白っぽく、Vが低いと黒っぽくなるので、Hの誤差が大きくなりそうです。
ある範囲は無視するとか、重み付けを変えるとかすると精度が向上できるでしょう。

この回答への補足

なるほど

”つまりHの値の全ピクセルの標準偏差を取って、閾値によって篩い分ける”ということですね

やってみたら成功しました

ただ、重さの概念の実装が難しいです、”黒すぎる場合と白すぎる場合Hの意味が減少するので、その値の価値を下げる"

ということなのでしょうけど、具体的にどうやるのかちょっと思いつきません、もし詳しければ教えて欲しいです

”黒すぎるピクセルと白すぎるピクセルを統計リストから外す”は出来ますが・・・

数日間の内に回答がなければベストアンサーにさせて頂きます。回答有り難うございました

補足日時:2012/02/08 00:39
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2012/02/13 00:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!