[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 10/08 20:25 / Filesize : 128 KB / Number-of Response : 535
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

画像処理 その11



1 名前:デフォルトの名無しさん [2008/09/28(日) 18:26:18 ]
画像処理プログラミングについて質問、議論を行うスレッドです
・画像処理について素人同士で大激論
・初学者の質問に対してやさしく(的を外れた)解答を与える
・その道の玄人も大歓迎

前スレ
画像処理 その10
pc11.2ch.net/test/read.cgi/tech/1197759782/

482 名前:476 [2009/03/16(月) 10:52:45 ]
>>478
>>481
画像全体を走査して、エッジを際立たせたり、ノイズを除去したりは
できるんですけど、、、、。で、結果は、変換された画像ではなく、
座標値として、得たいんです。
>>480
そうですねハフ変換ですと、直線や円の座標値として検出して、よい感じ
なのですが、今回もうちょっともやっとした集合、集まりのようなものが
対象なので、ハフ変換ではうまく検出できなかったんですよね。

今、
適当な大きさの窓つくって、窓を画像中で走査して、窓内での画像の面積と
重心を求めながら、窓の大きさちょっとかえてあげる。ってのをひたすら
繰り返しているのですが、重くて重くて。。


483 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:35:02 ]
それを汎用で軽く計算できたらかなり凄いんだけどな。

レベルセット法を使うとか、まぁ文献探すだけで一週間は遊べる世界だからねぇ。

484 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:39:42 ]
>>476
特徴点の集合を抽出した上で、
主成分分析はどうでしょう。
ttp://home.a02.itscom.net/coffee/tako04.html

485 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:49:23 ]
>>482
ガウスフィルタかけて、その結果の画像をもとに輝度の極大値の座標を求めれば
良いのでは。ガウス窓の大きさと、σは適当に変えて。

すでに登録した極大値との距離がしきい値より近い場合は、値の大きい方だけを
登録するようにする。

486 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:57:08 ]
>>482
実際の画像を上げてみて

487 名前:476 [2009/03/16(月) 12:33:24 ]
ぜんぜん汎用じゃなくてよいので、最後はがりがりカスタマイズするとして、
とっかかりもよくわからないんですよね。
レベルセット法、主成分分析、調べてみます。

ttp://nanasi.ddo.jp/up/download/1237174083.png
pass[gyo]
画面下のほうにはノイズがいっぱいあるので無視するとして、
上半分まであたりには、はっきり線ぽく、人間には見えます。
条件が悪いと、この線の幅がY方向に広がります。
赤で書いたような線分が検出できればゴールなんですが。


488 名前:476 [2009/03/16(月) 13:45:37 ]
おや、Upした画像だと、Hough変換でなかなかよい結果になりますね。
これももうちょっと調べてみます。

489 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 16:43:23 ]
>>487
その画像なら、レベル調整したあと、孤立してるドットをノイズとして除去するだけで大丈夫だろ。
おおまかな形でいいなら、画像縮小→レベル調整(低い部分をカット、高い部分を持ち上げる)だけでOK。

490 名前:476 [2009/03/16(月) 19:24:49 ]
>>489
孤立しているドットをノイズとして除去
っていう、前処理的なものをやったとして、その後、
それの“座標値”を得る方法を知りたいです。

たとえば、
ぼかし(ガウシアンetc)→2値化とすると、
検出したい点の集団が、島のようになりますよね。
ttp://nanasi.ddo.jp/up/download/1237198578.png
pass[hyo]

で、これを近似するような線分または、これをほどよく囲む
矩形の、座標値を知りたいのです。




491 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 23:41:57 ]
スネークどうでしょ

492 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:38:15 ]
>>490
各島を矩形で囲みたいってこと?
汎用で簡単ってことになると、面積も狭いことだし塗りつぶせばいいんじゃない?

左上を原点としてY座標下方が正の座標系で、まず1ピクセルを32ビット化して、
黒を0、白を0xFFFFFF とかに置換する。
1.いわゆるペイントアルゴリズムで(0,0)を1で塗りつぶす。
2.次に0または0xFFFFFFになっている点をみつけ2で塗りつぶす。
3.同様に塗りつぶす色を増やしつつ画面から0または0xFFFFFFFFがなくなるまで繰り返す。

終了時点の塗りつぶし色が、分割した空間の個数になってるし、同一領域は完全に同じ色に
なっているから、何をするのも簡単でしょ?

493 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 04:04:54 ]
( ´,_ゝ`)プッ

494 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 11:07:03 ]
たとえば15.2KBの画像を5KBに収縮するフリーの画像ソフト
教えてください。

495 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 11:09:42 ]
>>494
鼬害

496 名前:494ですが・・ mailto:sage [2009/03/17(火) 12:00:24 ]
>>495

すみません、おっしゃっている意味が分からないのですが・・

497 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 12:10:31 ]
板違い。そういう質問はソフトウェア板あたりでどうぞ。

498 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 12:15:37 ]
あ!板が間違っていたのですか・・
すみません。

499 名前:476 [2009/03/17(火) 19:12:23 ]
>>491
スネーク。なるほど。使えそうです。
あと、2値化のあと、8近傍みて輪郭追跡しても囲えそう。

で、直線や、矩形を得る場合は、囲った後にその領域の重心や
主成分分析で軸の方向を見つけたりしなければいけないのかな。
あと、スネークの開始の位置と半径とかって、やっぱり総当り?
最初から矩形に拘束したスネークってできるのかな。

いろいろやってみます。。

>>492
ん。ラベリング?


500 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:40:38 ]
二値化までできてラベリングも理解しているならあとはエイヤで書くだけでは…。
正直何を悩んでいるのか理解に苦しむ…。

ところで細線化はどうでしょう。
ttp://codezine.jp/article/detail/98?p=1



501 名前:476 [2009/03/18(水) 18:52:59 ]
>>500
お、細線化、面白いですね。

> 正直何を悩んでいるのか理解に苦しむ…。

ごめんなさい、わかってないの私だけですか?(TT

前処理的なものや輪郭ので囲むまでは、いろいろ教えていただいて
理解しました。最後の、線分をあらわす“座標”を得るためには、
主成分分析か、ハフ変換を使うのが正解ってことでよいですか?

今のところ、主成分分析は、L字みたいな領域ができてしまったときに
難しいことがわかりました。
ハフ変換は、ちょっと重いので、軽くする方法さがしています。あと、線分なのか
矩形なのかの判断がまったくつきません。

どちらの方法でも、2値化の閾値が大きく結果に影響してしまうのも困ってます。。


502 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:39:25 ]
ハフ変換とか知ってるのに細線化を知らないとか、
知識に偏りがあり過ぎるんじゃないか?
画像処理、画像認識系の本を読んだ方がいいかと。

知識は広く浅く持っておいて、必要なときに必要なところだけ
深く調べるのが効率的。

503 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:12:43 ]
画像処理は数学の分野ってわけでもないですし、こういう時って具体的にはどういう本がいいんですか?

504 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:19:39 ]
>>501

>正解ってことでよいですか?
正解だと断言することはできないが、方針としてそんなに外してないとは思う。
外野の立場ではそこまでしか言えない…。

なので後は自分で実験するか指導教官/上司/クライアントの指示を仰いで下さいおながいします。

505 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 21:46:52 ]
>>487
この感じなら大きめガボールフィルタをかければ
濃い領域が結合できると思う
ja.wikipedia.org/wiki/%E3%82%AC%E3%83%9C%E3%83%BC%E3%83%AB%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF

506 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 22:28:00 ]
>>503
入門書としては、
「デジタル画像処理」がオヌヌメね
www.cgarts.or.jp/book/img_engineer/index.html

507 名前:506 mailto:sage [2009/03/18(水) 22:33:16 ]
>>506
細線化の話が書いてあるかどうかは、定かでないが、
カラーの図がふんだんにあって、広く浅く分かりやすく書いてあるよ


508 名前:506 mailto:sage [2009/03/18(水) 23:29:42 ]
>>507
度々失礼。
Webにある目次のページを見たら、細線化の項目があったね。


509 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:58:21 ]
>>501
L字をlと_に分離したいなら、今のアプローチでいいのでは?
2値化して細線化したところでL字の分離には弱いと思う。

510 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 03:48:58 ]
画像処理を勉強し始めようと思って、手始めにwikipediaみてDFTから実装してみたんですが、
同じルーチン(2D DFT)を2回通すと元画像になります。これってどういうことでしょうか。

ちなみに実装した式は
F(x,v) = 1/sqrt(N) Σ_y=0 ^N-1 f(x,y) e^-2πi(vy/N) v = 0,1,...,N-1
F(u,v) = 1/sqrt(M) Σ_x=0 ^M-1 F(x,v) e^-2πi(ux/M) u = 0,1,...,M-1
です。

元に戻るということはIDFTになってるということだと思うのですが、
IDFTは e^-2πi...でなくて e^2πi...と各所で説明されていて、この通り実装したものをDFTのあとに通すと元画像にはなりませんでした。



511 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 12:33:16 ]
係数が掛かっている所為じゃない?
適当にnか√nか1/nか掛けてみたら?

512 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 17:34:32 ]
DFTの段階で1/√nかけてあればIDFTのときに1/nでなくて1/√nが使えてルーチンの再利用が楽になるから使ったんですけど・・・

一応論点にしたいのはIDFTはe^2πi...なのかe^-2πi...なのか・・・ってとこなんです。
DFTを紹介してるいろいろなサイトだとeの指数部がDFTとIDFTで正負逆になってるのでどちらが正しいのかと・・・

513 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 23:31:54 ]
Twiddle Factor:W=exp(-j2π/N)
DFT:  F(u) = 1/√N 農x=0^N-1 f(x) W^(xk)
IDFT:  f(x) = 1/√N 農u=0^N-1 F(u) W^(-uk)
です。IDFTの複素共役をとったら
  f*(x) = 1/√N 農u=0^N-1 F*(u) W^(uk)
逆変換が「F*(u)をDFTして複素共役をとる」になる。

結局IDFTはDFTを使って表せるから eの指数部の符号は気にしなくてもいいんじゃないか

514 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 23:35:51 ]
fは実数だからf(x)もf*(x)も同じだし、
F(u) = F*(N-u)とかの関係を使えば説明できるかな。良くわからん

515 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 01:30:56 ]
ウィキペディアみたら正規化係数やらeの指数部やらは習慣的なものだからとか書いてあるからあんまり気にしないことにします。

へんなこと聞いてすいませんでした。

516 名前:デフォルトの名無しさん [2009/03/21(土) 09:52:12 ]
このスレの80%くらいは低レベルな質問だな

517 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 09:55:02 ]
まあ、画像処理は低いレイヤーの話だからね。

518 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 13:02:07 ]
ウィットに富んだジョーク!

519 名前:デフォルトの名無しさん [2009/03/21(土) 14:42:28 ]
bmp形式ファイルで「1bpp」にした画像を見たいのですが
うまく、見れません。
bmfhsize=sizeof(bmfh);
bmihsize=sizeof(bmih);
filesize=bmfhsize+bmihsize+((width/8)+1)*height;
::ZeroMemory(&bmfh, bmfhsize);
::ZeroMemory(&bmih, bmihsize);

bmfh.bfType=0x4d42;
bmfh.bfSize=filesize;
bmfh.bfReserved1=0;
bmfh.bfReserved2=0;
bmfh.bfOffBits=bmfhsize+bmihsize;

bmih.biSize=bmihsize;
bmih.biWidth=(width/8)+1;
bmih.biHeight=height;
bmih.biPlanes=1;
bmih.biBitCount=1;
bmih.biClrUsed=8;
bmih.biCompression=BI_RGB;//無圧縮形式
bmih.biSizeImage=0;//
bmih.biXPelsPerMeter=0;
bmih.biYPelsPerMeter=0;
bmih.biClrImportant=0;

どのようにヘッダファイルを定義したらいいですか?
width=100,height=100の画像を1bppに変換しようとしています。

520 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:45:37 ]
1bpp なら bmih.biClrUsed=2; じゃない?



521 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:06:58 ]
bmih.biWidth=width;
だろ。あと各行のデータは4バイトバウンダリ

あとで、画像が上下さかさまだとか泣きついてきそうだな

522 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 09:42:20 ]
低レベルだw

523 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 11:26:08 ]
>>519
パレットいらないっけ?

524 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 12:30:53 ]
パレットいる、2つ分

525 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 12:34:25 ]
ネタがないからいいけど、どう見てもAPIスレ向けだろう……
つーか、二値画像を見たいだけなら自分で書かなくてもツールで事が足りるだろうに。

526 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 12:48:16 ]
自分で作ったBMPファイルがツールで見られない、という話じゃないのか

527 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 13:11:56 ]
まさかとは思うが、ヘッダを書くだけで2値化できると思ってないだろうな。

528 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 17:37:30 ]
>>519
>>bmp形式ファイルで「1bpp」にした画像を見たいのですが
と書かれれている一方、
>>width=100,height=100の画像を1bppに変換しようとしています。
と書かれていて、趣旨がのみ込めません。

1bpp の bmp header(BITMAPFILEHEADER, BITMAPINFO)の内容の記述が
分からないのであるなら、Windows アクセサリの「ペイント」で適当は
画像ファイルを読み込んで、白黒 bmp で保存してみればいいのではない
でしょうか。
尚、bmp ファイルの読み込み・表示は「猫でも分かる・・・」の160
章、170章に出ています。

529 名前:528 mailto:sage [2009/03/23(月) 17:39:42 ]
×適当は画像ファイル
○適当な画像ファイル
失礼しました。

530 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 20:23:52 ]
>>523
パレットは必須ではなかったと思う。
パレット無しのモノクロBMPをAPIで読み込ませると、TextColorとBkColorに
勝手にマップしてくれた希ガス。



531 名前:デフォルトの名無しさん [2009/03/24(火) 07:06:52 ]
はなじでた

532 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 07:44:04 ]
何の話じをしでたの

533 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:12:17 ]
DBIがAPIで読めるようになったのは後から追加された機能だから
使ってないツールも多いけどな。

534 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:13:42 ]
DBIって何だ、、orz DIBね






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<128KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef