トップページ⇒tech
986コメント291KB

画像処理

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
見たところ、これについての質問はないので。
RGBカラー画像を別々に二値化後、一つの白黒の画像に変える方法ってあります? 初心者なもので教えてください
0002デフォルトの名無しさんNGNG
>>1
ありません
しゅうりょうーでーす
アリガトウございました
0003デフォルトの名無しさんNGNG
>>2
上げてるあたりがにくいね

このスレ、別に悪くないのでは?
0004デフォルトの名無しさんNGNG
RGB-->YCbCrに変換してYのみ表示させればいいんじゃ?
0005デフォルトの名無しさんNGNG
>>4
すばやいレスありがとうございます。
早速やってみます
0006名無しさん@お腹いっぱいNGNG
私も教えて欲しいことあります。
0007デフォルトの名無しさんNGNG
>>6
その「教えて欲しいこと」を教えてください。
00084 > 1NGNG
RGB-->YCbCr-->RGBで表示するんだけど、
CbCrは0x80にして変換すればよかったかも。。
昔のことだから忘れた。
 報告はしてね(はぁーと
0009デフォルトの名無しさんNGNG
私にも教えてー
0010デフォルトの名無しさんNGNG
検索したらこんな式見つけた
Y = 0.299R + 0.587G + 0.114B
001110NGNG
つまり
Y = (299*R + 587*G + 114*B) / 1000;
とか
Y = (306*R + 601*G + 117*B) >> 10;
でどう?
0012デフォルトの名無しさんNGNG

http://www.sm.rim.or.jp/~shishido/

 YCrCbとRGBの変換はここの「DIB・グラフィック処理実験室」
にサンプルがあるね。CrCbはマイナスになる事もあるから注意が
必要かも。
0013デフォルトの名無しさんNGNG
 白黒化はYの値を0-255に丸めて(RGB各8ビットの場合)、そのY
の値をRGBそれぞれにセットすれば良いけど、2値化はきれいにや
るのは難しそう。
0014デフォルトの名無しさんNGNG
大津の判別分析法とか使って試すべし。
0015デフォルトの名無しさんNGNG
君たちが、「こいつは最高だぜ!」という
二値化処理は何だね?

「経験から得られる」しきい値処理はダメよ。
0016デフォルトの名無しさんNGNG
テキスト文字変換
0017デフォルトの名無しさんNGNG
画像サイズが大きくなってもイイのなら「ディザ」
0018デフォルトの名無しさんNGNG
>>15
ホワイトノイズを重畳してから二値化すると良好な二値化画像が得られる。
0019デフォルトの名無しさんNGNG
>>18
ソースを書いてくれ
0020デフォルトの名無しさんNGNG
おーい、便乗質問許してくれ。
GISの勉強できるサイト求む。
0021デフォルトの名無しさんNGNG
>>13
Y信号の正常入力値は16-235じゃないの?ITU-R BT.601では。
0022sageNGNG
>>21
フロー予防用でしょ。規格外でも良いなら、
別に0-255でもいいみたい。
002322NGNG
sage間違った、鬱だ…
0024デフォルトの名無しさんNGNG
Waveletによる、アイコラ補正ツール作ってください
0025デフォルトの名無しさんNGNG
>>19
 なに甘えてるんだ?
0026デフォルトの名無しさんNGNG
>>25
プログラム「ソース」ならそう思うけど、情報の「ソース」ならそんなに目くじら
たてなくてもEE JUMP!
0027デフォルトの名無しさんNGNG
>>22
たしかに0-255でも良いが16-235を0-255に伸張して計算すると
誤差が少なくなるよ。
0028デフォルトの名無しさんNGNG
>20
Free GIS ActiveX

http://www.hsps.co.jp/atx.htm
0029デフォルトの名無しさんNGNG
age
0030デフォルトの名無しさんNGNG
>>1 の求めていることと合っているか分からんが
http://www.mars.dti.ne.jp/~torao/program/graphics/filter.html
0031デフォルトの名無しさんNGNG
>>8,12,
遅くなってすいません。だいたいのメドはつきました。ただ、閾値の算出の判別分析法で逐次代入しているので、計算に時間が・・・
PEN�V600MHzで約10分かかります(笑) まあ、今のところはそれでもいいかなと。
>>30
ありがとうございます。参考にさせて頂きます。
0032学生です。NGNG
板たててしまいましたが、こちらのほうが適切なので同じ質問します。

わたしは画像処理を勉強中の学生です。
今tga形式のファイルの読み込み方法がわからなくてこまっています。
適当な画像をUNIXのconvertコマンドでtgaファイルへ変換し、
それを入力ファイルとしたのですが、なぜかファイル読み込みでエラー
になってしまうのです。プログラムの方の間違いはないと思います。
そこで、旧バージョンのTGA画像ファイルを手に入れることはできないでしょうか?

http://www.shiojiri.ne.jp/~openspc/format/TGA/
こちらで構造はわかりましたが、この構造をもったファイルを手に入れられないので。

よろしくおねがいします。
0033学生です。NGNG
あげさせていただきます。
0034デフォルトの名無しさんNGNG
素直に、新バージョンのtga形式のフォーマットに対応する、
covertコマンドのソースをみる。
0035デフォルトの名無しさんNGNG
a.g.e.
0036デフォルトの名無しさんNGNG
意味の無い晒しアゲはやめましょう。
画像処理はやればやるほど新しい拡張命令が欲しくなります。
0037デフォルトの名無しさんNGNG
画像処理ちゅうても範囲広すぎると思う。
圧縮や減色、エフェクトの話ならともかく、tgaファイルの話されても
知らんし興味ないんだよねぇ。

それはともかく、画像処理を仕事でやろうとするとすぐにパテントの壁に
ぶつかって鬱になる。
0038デフォルトの名無しさんNGNG
 減色といえば、Cマガの2000年7月号にあったベクトル量子化というのは
なかなか面白かったな。近似色のペアをまとめて一つにしたり、あるいは
一定の領域サイズで分割してその領域毎に減色したりして効率をあげるら
しい。
0039デフォルトの名無しさんNGNG
>>32
たぶんsimtel.comに転がってるよ。
>>38
クラスタリングだよね。tetoraなんたらとかoptpixとか。
0040デフォルトの名無しさんNGNG
>>32
そこらにあるプログラム
例えば、PaintshopとかxvとかPhotoshopで変換とか出力とか
できるんじゃないの?
0041デフォルトの名無しさんNGNG

プログラム板のレベル低いね(藁
0042デフォルトの名無しさんNGNG
>>39
>tetoraなんたらとかoptpix

optpixはしらんけど、tetoraなんとかは色空間のクラスタリングのなにだから
38のとは関係ないぞ。
0043デフォルトの名無しさん01/08/30 17:54ID:9QNbWBcQ
画像処理をJavaでやろうと思ってる俺は厨房ですか?
C++が難しいんだも〜ん
0044デフォルトの名無しさん01/08/30 18:29ID:6/9p5gqo
別にいいじゃないの?
速度が問題に鳴るくらいで
0045デフォルトの名無しさん01/08/30 21:02ID:9QNbWBcQ
>>44
そうなんですよね。
速度が問題・・・
0046デフォルトの名無しさん01/08/30 21:36ID:w1HrIvLM
速度だけならせいぜい10万倍ぐらいしか
はやくならにゃいとおもわれ
0047デフォルトの名無しさん01/08/31 20:15ID:a3QlxkFk
>>43

 私もJavaのMemoryImageSourceで画像処理の実験やってみたけど、
「フレームバッファ内ピクセルの操作」「フレームバッファ間の転送」
に関してはわりと実用的だったような気がする。ただ、描画性能は
いまいち。

 Java2だとBufferedImageがWin32のDIBSection並の機能を持って
いるんで(バッファの扱いがかなりわかりにくいが)、工夫次第では
面白いものが出来そう。
0048デフォルトの名無しさん01/09/02 16:41ID:UMm5RQG.
Java Advanced Image(JAI)とかJava Media Framework(JMF)使って画像処理してる人います?
0049デフォルトの名無しさんNGNG
俺もJavaで画像処理をやってみようと思ってる。ライブラリが豊富だし。
この場合って、Pen4とPen3のどっちが適してます?
今度、PC買う予定なもんで・・・
0050 NGNG
make_monoclo( short *color_buffer, short *mono_buffer,short width,short height )
{
short i,j,r,g,b;
for(i=0;i<height;i++){
for(j=0;j<width;j++){
r=(*color_buf >> 0) & 0x1f;
g=(*color_buf >> 8) & 0x1f;
b=(*color_buf >> 16) & 0x1f;
*mono_buffer =(r+g+b)/3;
color_buffer++;
mono_buffer++;
}
}
}
0051 NGNG
PhotoEditorやPhotoshopにある明るさ自動調整を
プログラミングであらわすとしたらどうしたら良いですか?
教えてください。言語は何でもOKですし、数式でもかまいません。
0052デフォルトの名無しさんNGNG
ヒストグラムストレッチとか、ヒストグラ平均化とかか?
0053デフォルトの名無しさんNGNG
 明るさの「最大化」ならやったことがあるよ。数式というか、原理は単純で
まず各画素をYCrCbなど「明るさ」を分離した形式にして、その最小・最大値
を取得、続いてその最小・最大値の範囲を0-255に変換する、という感じ。
0054デフォルトの名無しさんNGNG
アンチエイリアスについて教えてください。
リージョンで選択範囲をしていして、もう1つの画像へアンチエイリアスをかけて
張り付けたいのですが、何か良い方法はないでしょうか?
0055>>50NGNG
 数字の上では赤・青・緑の輝度が同じでも、
人間の目が実際に感じる明るさは違うから、
単純に3で割るのはいただけないぞ。
0056デフォルトの名無しさんNGNG
http://edit.yahoo.com/config/eval_register?intl=us&new=1&.src=geo&.done=http%3a//geocities.yahoo.com&.last=http%3a//geocities.yahoo.com/reg?.state=0

アメリカのジオシティーズの
最後のセキュアコードをプログラムで
解読したいのですがどうすればいいですか?
0057デフォルトの名無しさんNGNG
>>56
考えるな。感じるんだ。
0058デフォルトの名無しさんNGNG
>>50
*mono_buffer =(r+g+b)/3;
↓
*mono_buffer = 0.299 * r + 0.587 * g + 0.114 * b;
0059あめ〜ばNGNG
カラーの画像処理関係は、�凾�を使えばどうよ?
0060デフォルトの名無しさんNGNG
弛緩法を用いたオプティカルフローの出し方を教えて下さい。
0061デフォルトの名無しさんNGNG
>>1
LUTフィルターとかでいいんでないの?
0062デフォルトの名無しさんNGNG
なんか、適当なA×Bの大きさの配列があって
そこにYUV形式のデータを詰め込んで、
適当な関数を呼ぶと Jpeg になって出てくるような、
そんな素敵な関数あります?

Gifはとりあえずいりません。
0063デフォルトの名無しさんNGNG
カルマンフィルターって何?
0064デフォルトの名無しさんNGNG
http://nt.sakura.ne.jp/~kishou/klm/klm2.html
0065デフォルトの名無しさんNGNG
>>58
(55*r + 108*g +21*b+92) div 184
0066デフォルトの名無しさんNGNG
ガウシアンフィルターって何?
0067デフォルトの名無しさんNGNG
google知らんのか?
0068デフォルトの名無しさんNGNG
線形補完をする際に、もともと濃度変化の大きい部分は
それに応じて、小さい部分はそれに応じて補完するという、
拡張型線形補完(非線形補完かも)みたいな方法がある
と聞きましたが、この方式に付けられた名前は何ですか。
0069デフォルトの名無しさんNGNG
単純に 重みつき線形補間 では? >>68
0070デフォルトの名無しさんNGNG
最近勉強中のC++で画像縮小ツールを作って、山のようにある溜まった画像を
きれいに一覧表示したいと思ってます。
当然、画質命で一番綺麗な縮小アルゴリズムを使いと考えてます。
Lanczos3って奴がいいらしいんだけど、googleで調べたけどよーわからん。
俺が厨房だからなのか? やっぱり最初はありきたりの方法から入るべきなのか?
綺麗な縮小アルゴリズムやLanczos3について詳しいページがありましたら
教えてもらえませんか?

いまんトコここ見てうなってます。ここが最高の解説ページだったらどうしよう‥‥
http://e3lt11.ocv.ne.jp/db2001_7.htm
0071デフォルトの名無しさんNGNG
>>70
サムネイルのサイズはどれくらいなんだ。
そのサイズによっては、アルゴリズムごとの画質の差なんか出ないぞ。
100×100くらいだったら線形補間でも充分。
0072デフォルトの名無しさんNGNG
失礼しました。
元画像は基本的にデジカメで撮った写真だから800×600サイズ。
この一辺を5〜6分の1サイズ程度(とりあえず小さく)にしたいから
160×120にする場合で考えてます。
あわよくば印刷した時のインクの節約と用紙の節約も目的かも。
0073デフォルトの名無しさんNGNG
>>72
それでも線形補間で充分。
0074画像厨NGNG
USBにくっつけたカメラから動画を取り込んで人間の動きをとりたいんですけども
肌色抽出+肌色重心抽出 だけだとどうもうまくいきません。

何かスムーズにかつ見失わないようにする方法をご存じの方お教えください。
0075デフォルトの名無しさんNGNG
>>73
線形補間つかローパスフィルタだよね。
800x600→160x120なら、5x5ドットごとに輝度の平均を取る。
補間がいるのはドット増やす場合でわ?
007670NGNG
答えていただいてありがとうございます。
ちょっと勉強中で専門用語だと自信ないのですが、
(>ちゃんと勉強してきます)
今やっているやり方は5×5のRGBの色成分を
それぞれ平均して縮小する方法です。
(できたら縮小率は可変にしたいですけど)
ただ、それよりLanczos3ってやり方が綺麗らしいので
調べてみようかなと思って挫折しかけてます。
美の追求って事で他にも綺麗な縮小の考え方があったら
ついでに勉強しとこうと思ってます。
0077デフォルトの名無しさんNGNG
SSDA、残差逐次法ってテンプレートとマッチングする位置を
探すだけで
元画像をはにか変換するわけじゃないんですか??
0078デフォルトの名無しさんNGNG
>>75
簡易的にはそれで良いかもしれんが、縮小の問題は再サンプリングの問題なので
補完が必要。サンプリング関数を直線補完で代用する場合は普通、内挿比テーブル
を生成して横軸に再サンプル。出来た画像を今度は縦軸に、同様の手法を用いて
再サンプルすれば、とりあえずOK。一番端は特別処理となるので注意。
007970NGNG
>>78
綺麗な縮小って単純に平均するだけじゃないというのは判ってきたのですが、
私は根本的にまだ理解不足(勉強不足)のようです。
画像の再サンプリングについて勉強できるページなどありましたら
紹介してもらえないでしょうか。
とりあえずはGoogleで片っ端からみてみます。

綺麗な画像縮小って奥が深いですね。
0080デフォルトの名無しさんNGNG
エロゲでよくやってる立ち絵の境界のアンチエイリアシングのやりかたを教えてください。
検索しても3D関連の、直線のアンチエイリアシングしか出てこない…
0081本職NGNG
αで抜いてるだけだよ
大抵自力演算だね
008275NGNG
>>78
なるほど...
アナログ信号処理用語で言えば
フィルタのタップを5ドットの外にも広げて、
タップの係数は一般には1じゃない、とそういう理解で良い?
008380NGNG
>本職さん
回答ありがとうございます。
αで抜く、ということはαマスクを用意するんですよね?
それとも、毎回境界を調べて処理するんでしょうか?

マスクを用意して処理する方法は知っていますが、マスクに頼らず実現するには…?
0084デフォルトの名無しさんNGNG
>>83
オーバーサンプリング
0085デフォルトの名無しさんNGNG
>>82
その通りです。5ドットの小空間に分割する方法は元信号に低周波ノイズを混入する事になる
からよほど制約がない限り使用しない方が良いかと。
画像でも音声信号処理で使われる簡易的な方法が使用可能です。
例えば数ドットの移動平均式ローパスフィルタを正方向、逆方向と数回かけて周波数を落とし、
目的の感覚で再サンプリングしてもそこそこの画質は得られます。
0086デフォルトの名無しさんNGNG
簡単な編集用ソフトでも作ってみようと思うんだけど、
やっぱりVC++が良いんだろうか?
Javaの方が楽にできそうな気がするんだが・・・
0087デフォルトの名無しさんNGNG
そんなことはあります。
0088デフォルトの名無しさんNGNG
>84
お婆さんプリン?
0089デフォルトの名無しさんNGNG
gcc + libpngを使って画像ファイルを生成するプログラム作成中なんですが、
任意のテキストを任意の位置に埋め込むような関数って
どっかから流用できないでしょうか?
埋め込みたいのは普通のアスキーテキストです。アルファベットと
数字さえ使えればオッケーです。
009089NGNG
gd ってライブラリ使えばいいんですね。さっき自分で発見しました。
どうもすんません。
0091本職NGNG
>83
αマスクを持たせます

オーバーサンプリングや境界線をぼかす等の手法もなくはないけど
非効率的かつ重いのでエロゲでそんな手法で実装してるのは見たことありません
立ち絵の境界アンエリをするなら素直にαマスクを持たせて
MMX命令辺りで合成しましょう
0092デフォルトの名無しさんNGNG
αで抜かなくても、4近傍くらいでエッジを検出して、
50%ブレンドするんじゃダメなの?
009386NGNG
Java Media Frameworkとかいうの見つけたけど使った人いる?
0094元本職NGNG
>>92
ダメ。エッジのみ平滑化は非常に醜くなる。
素直にαチャネル使うのが良い。
どうせPhotoShopとかで描くんだから、
それがそのままのイメージで表示できるし。
あと、αチャネル使用だと、
カラーキーの時と違ってジャギとリしなくていいのが
グラフィッカにとっては大きなメリット。
一番人月喰うのがグラフィッカだから、
αチャネル使用するだけで制作コストが大幅に下がる(爆)
0095デフォルトの名無しさんNGNG
αとはサブピクセル集合の近似なんだね。
0096デフォルトのお馬鹿さんNGNG
BMPの話なんですが
(unsigned)(((long)pixWidth * pixDepth + 31) / 32) * 4
(unsigned)((pixDepth + 7) / 8)
でそれぞれ1ライン、1ピクセルに必要なバイト数を得られるのでしょうか?
009796NGNG
確認じゃなくて、どうしてか?を聞いてます(鬱
0098デフォルトの名無しさんNGNG
pixelByte = (pixelDepth + 7) / 8;
lineByte = (((Width * pixelByte) + 31) / 32) * 4;

環境にもよるが
pixelDepthは8の倍数とは限らないかもしれない。
また、1ラインのバイト数は必ず4の倍数にするという決まりがある。
よってこうなる。
0099デフォルトの名無しさんNGNG
pixelByte = (pixelDepth + 7) / 8;
lineByte = (((Width * pixelByte) + 3) / 4) * 4;
ごめん。全然違ってた。
010096NGNG
すいません。
もうちょっとだけお馬鹿にわかるよう解説お願いします。
0101デフォルトの名無しさんNGNG
>>96
ばーかばーか
決まりなんだよ、決まり!
BMPっていうフォーマットの!
■ このスレッドは過去ログ倉庫に格納されています