トップページ⇒tech
981コメント308KB

画像処理 その12

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/07/09(木) 09:52:04
画像処理プログラミングについて質問、議論を行うスレッドです
・画像処理について素人同士で大激論
・初学者の質問に対してやさしく(的を外れた)解答を与える
・その道の玄人も大歓迎

前スレ
画像処理 その11
http://pc12.2ch.net/test/read.cgi/tech/1222593978/
0412デフォルトの名無しさん2009/12/18(金) 13:09:10
立体線画のパターン認識をやりたいんですが
MSEって3次元画像ではどういう風に計算するんでしょうか?
ググって文献さがしているんですがなかなか見つからんです。
あと、もっといい誤差の求め方があればいいのですが・・・二乗誤差が一番基本的かと思いまして。
0413デフォルトの名無しさん2009/12/20(日) 18:01:10
こういう符号化してるのってある?
符号化 復元
0001xxx 0000000000001xxx
001xxxx 000000001xxxx---
01xxxxx 00001xxxxx------
1xxxxxx 1xxxxxx---------

0は0
1は1
xは不定
-は切捨て
0414デフォルトの名無しさん2009/12/20(日) 19:04:58
>413
意味が分からん。 
ハフマンかランレングスに近いかもしれんが、歯抜け過ぎるテーブルの解析は
困難ですなw
0415デフォルトの名無しさん2009/12/20(日) 23:46:09
>>411
Gimpは動画のコマ送りトレースできないよね。
0416デフォルトの名無しさん2009/12/21(月) 00:00:46
PNG圧縮処理を自前でやってみたんですけど
100x100のサイズを超える画像がなんかうまく圧縮できないみたいで
何かPNG圧縮で100x100超える画像とかに特殊なやり方とかあるんですか?
0417デフォルトの名無しさん2009/12/21(月) 00:07:06
人に聞く気が無ければ来るな
0418デフォルトの名無しさん2009/12/21(月) 00:10:29
>>416
圧縮・復元 相談室
http://pc12.2ch.net/test/read.cgi/tech/1040749065/
0419デフォルトの名無しさん2009/12/21(月) 21:14:33
>>416
チャンクのサイズ上限に引っかかったんじゃ。
04204162009/12/21(月) 21:52:55
それは一度疑ったんですが
チャンクのサイズ自体は問題なかったです
100x100以上の画像に特別な処理するわけでは無さそうですね・・・
もう一度見直してみます。お騒がせしました
0421デフォルトの名無しさん2009/12/22(火) 11:17:26
お騒がせというほどではないっす
0422デフォルトの名無しさん2010/01/04(月) 07:26:49
モニターに写っている物を携帯で写した画像と
実際の物を携帯で写した画像の区別をつける方法を教えてください。
0423デフォルトの名無しさん2010/01/04(月) 08:14:38
目で見ればモアレでわかるけど...
0424デフォルトの名無しさん2010/01/04(月) 08:47:53
>>423
普通に見ただけじゃまったく分からない画像なんですが・・
そういう場合でも調べられますかね?
0425デフォルトの名無しさん2010/01/04(月) 08:56:26
まず二枚のサンプル画像うpしる
0426デフォルトの名無しさん2010/01/04(月) 09:05:58
http://p.pita.st/?scqabhl1

2枚の画像は今ちょっとうpできないんですが、スミマセン・・
例えばですが、これなんかはパソコンの画面を写したものですが
全然でていないですよね?
0427デフォルトの名無しさん2010/01/04(月) 12:22:10
水平方向の明度変化が大きい方がモニター画像。
0428デフォルトの名無しさん2010/01/04(月) 12:22:30
間違えた、垂直だ
0429デフォルトの名無しさん2010/01/04(月) 21:57:08
>>427-428
それは安物のTN液晶を近距離から取った場合だけだろ
0430デフォルトの名無しさん2010/01/04(月) 22:20:50
エッジ見れば分かりそうな気が
0431デフォルトの名無しさん2010/01/04(月) 22:42:05
>>426
これくらいならわかりそうだけど
人間がいくら詳細に観察しても区別できないものは機械にもわからんだろう
0432デフォルトの名無しさん2010/01/04(月) 23:53:05
グレア加工されていれば妙なツヤが出るし
フラッシュを焚いていれば光源が写りこむ
あるいは撮影者が写りこんでいるかも
CRTならモアレやラスタから判別出来る
でもそういうのがまったく無ければ難しいだろうね
0433デフォルトの名無しさん2010/01/06(水) 19:24:23
画像処理ってパテントの固まりなんですね。
オープンソースでプログラムを公開しようと思ったら
関連特許は調べておくべきでしょうか。
0434デフォルトの名無しさん2010/01/06(水) 19:33:39
特許についてはソースの利用者が調べろ
特許のトラブルは関知しない

とソースに入れておけばいんんじゃない
0435デフォルトの名無しさん2010/01/06(水) 20:01:43
公開した時点で損害賠償請求の対象になるんじゃないでしょうか。
やっぱり仕組みからきちんと調べた方が良さそうですね…
0436デフォルトの名無しさん2010/01/06(水) 21:07:37
第68条 特許権者は、業として特許発明の実施をする権利を専有する。
ただし、その特許権について専用実施権を設定したときは、専用実施権者が
その特許発明の実施をする権利を専有する範囲については、この限りでない。

法律がどうあろうと俺は訴訟を起こすぜヒャッハー、というキチガイも世の中にはいる。
そういうキチガイに絡まれるのが嫌というなら一切公開しないことだね。
0437デフォルトの名無しさん2010/01/06(水) 21:13:05
>>435
> 公開した時点で損害賠償請求の対象になるんじゃないでしょうか。

それは常識的には無いと思う。

パテント保有者は、まずは公開した者や責任者に問い合わせるだろ。
「その技術はうちの権利を侵していないだろうか」と。
そして確かに侵していると互いに認識すれば、そこから
以後はもう公開しないとか、公開し続けるなら特許料とかの話に入る。

よくマスコミが取り上げたりして話題になるのは、
互いの認識が合わないまま公開し続けた、使い続けた後の話だと思うぞ。

「普通」は話し合いだ。
サブマリンや >>436 の言うキチガイなどでいきなり大事に持ち込もうとしても
できないような法律的仕組みが、確か作られているような気がしたが・・・
思い違いかな。
0438デフォルトの名無しさん2010/01/06(水) 21:36:20
なるほど、勉強になりました。ちゃんと調べずに書き込んで済みません。

頂いた情報でググってみたら Xvid や MP3 の例を見つける事が出来ました。
「業として」なのかと、万が一問題が発生したらきちんと対応する事が
重要という事ですね。どうもありがとうございます。
0439デフォルトの名無しさん2010/01/06(水) 22:50:40
なんとかフィルタとかいってなんか特許がどうのこうの言って
フリーのフィルタの開発者達に脅しをかけた人がいて2chでネタにされてたけど、
Lame本家やXviD本家みたいにソースだけ公開してる分には全く問題ないはずなのよな。
0440デフォルトの名無しさん2010/01/06(水) 23:18:31
アイリスフィルタか
0441デフォルトの名無しさん2010/01/09(土) 01:17:45
有識者の皆様、Watershed アルゴリズムについて解説していただけないでしょうか。

http://opencv.jp/sample/segmentation_and_connection.html

http://www.mvision.co.jp/WebHelpIM/_RESOURCE/Watershed_02_fig.html

この2つのウェブに書いてあるのは同じ処理なんですか?
上のほうは距離画像が絡んでくるように思えないのですが。
0442デフォルトの名無しさん2010/01/09(土) 02:06:00
>>441
有識者じゃないけど条件の与え方が違いすぎるから同じものには思えないねぇ。
0443デフォルトの名無しさん2010/01/10(日) 15:59:58
>>441
後者は白黒画像に対し符号付き距離変換をしてから Watershed を使ってる
…たぶん
0444デフォルトの名無しさん2010/01/11(月) 20:51:31
教えてください。
yuv10bitを8bitに減色するには、どう減色するのがいいんですか。
0445デフォルトの名無しさん2010/01/12(火) 11:51:10
yuv10ビットってのはy:u:v=10:5:5ビットの20ビットってことだから、yから2ビット捨ててuとvから1ビットずつ捨てれば医院で内科医?
04464412010/01/12(火) 22:28:06
>>442さん、>>443さん、レスありがとうございます。

後者は、領域成長のシードを自動的に与えるために
白黒画像を距離変換して極大位置をもとめるということでしょうか。
でもって領域成長のうちきりが分水嶺ということなんでしょうか。

前者のOpenCVのほうはシードを手動で与えてますよね。
0447デフォルトの名無しさん2010/01/16(土) 20:29:12
動画像処理で物体を除去するプログラムです。
詳しいことはファイルに書いてあります。

http://www.dotup.org/uploda/www.dotup.org567007.zip.html

環境
OS:Windows
コンパイラ名とバージョン:VisualC++2008
言語:C言語(ライブラリとしてARToolkit、OpenCVを使用しています)

アップローダーのパスワードは8756です。
自力で出来る限りのところまでやってみたのですが限界を感じました。

ご指摘お願い致します。
0448デフォルトの名無しさん2010/01/16(土) 21:58:42
お前マルチだろ
0449デフォルトの名無しさん2010/01/17(日) 09:04:07
はわわわわー
0450デフォルトの名無しさん2010/01/20(水) 23:35:07
2つの立体画像の形状の類似を調べるのに
一番確実で手っ取り早い方法ってなんですか?
0451デフォルトの名無しさん2010/01/20(水) 23:36:11
目視で確認
0452デフォルトの名無しさん2010/01/20(水) 23:42:55
それぞれ三箇所から撮影したそれぞれ三枚の画像で比べる
0453デフォルトの名無しさん2010/01/20(水) 23:51:30
携帯サイトとかmixiアプリとかで
「脳力テストゲーム」みたいな名前で>>450-451を実施したら
それなりに機能しそうな気がしてきた
0454デフォルトの名無しさん2010/01/20(水) 23:58:33
青基調の画像の青部分を緑にしたりとか
どうやったらできるの?
フォトショでできる?
0455デフォルトの名無しさん2010/01/21(木) 00:01:03
色相
0456デフォルトの名無しさん2010/01/28(木) 23:12:27
画像処理の仕事って儲からないよな。
0457デフォルトの名無しさん2010/01/29(金) 01:29:50
for文で画像全体を走査し、if文で、
2値化した画像の画素値が0(黒)の部分だったら右に+5のように少しずれて、
そのずれた先がまた黒だったら、今度は下に+5ずれた部分から画素を取得する、
以下、その繰り返し・・・
というようなif文の書き方はどのように書けば良いのでしょうか?
0458デフォルトの名無しさん2010/01/29(金) 01:34:59
再帰
0459デフォルトの名無しさん2010/01/30(土) 22:38:45
ちょっとスレ違いかもしれませんが、カメラキャリブレーションをする時の「再投影誤差」というものがよくわからないです。
調べてみて
・正しい(と思われる)三次元座標と画像座標の対応がわかっている場合に
・画像座標を変換行列によって三次元点に変換したものと、対応する三次元座標の間の誤差
のような感じで理解したのですが、今使っているMATLABのcamera calibration TOOLBOXだと、誤差がreprojection error(in pixel)という表記で出てきています。
三次元点同士の差なのでm単位だと思っていたのですが、再投影誤差をpixelで表すときはどのような操作をしているのでしょうか?
画像座標→三次元座標→再度画像座標へ、とやるのかと思いましたが、これでは逆変換をほどこすだけなので元の場所に戻ってきてしまいますよね?
0460デフォルトの名無しさん2010/01/30(土) 23:22:13
yes we can
0461デフォルトの名無しさん2010/01/31(日) 20:15:49
正解点x、推定点x'とすると
再投影誤差d=||x-x'|| (|| ||はL2ノルム)
推定した三次元を画像座標で観測した時の画像座標を正解座標と比較するから"再投影"誤差
0462デフォルトの名無しさん2010/02/01(月) 00:55:01
ありがとうございます。
すると>>459の解釈が既に間違っていて、正しい(と思われる)三次元座標:画像座標について
・画像座標=画像上で検出したもの
・推定座標=三次元座標を(推定した)変換行列で画像座標に変換した座標
という二つの画像座標間での誤差を計算、ということで良いでしょうか?
0463デフォルトの名無しさん2010/02/02(火) 20:26:50
普通はそうだね
0464デフォルトの名無しさん2010/02/06(土) 13:33:07
Photoshopのブラシのようなものを作っていますがどのように計算したらいいのでしょう?
はじめはガウス関数を使ってみたのですが速度がどうしても稼げませんでした。
次に先に2次元ガウス分布図をテーブル化して画素に加算をした結果、
ぱっと見うまくいっているんですが、テーブル値の間の値はどちらかに寄ってしまうので
縞模様になってしまう場合もあります。
0465デフォルトの名無しさん2010/02/06(土) 14:31:24
GIMPのソースでも見たら?
0466デフォルトの名無しさん2010/02/07(日) 16:12:46
フニャフニャの輪ゴムを撮影して、
画像処理で真円に変換する方法ってありますか?
0467デフォルトの名無しさん2010/02/07(日) 20:07:55
どこまで品質が要求されるのかにもよるけど
(1)フニャフニャ輪ゴムのアウトライン(輪郭)を抽出
(2)アウトラインと真円との対応を考え、拡大縮小率、回転率、移動量を
  画素単位(あるいは微小面積単位)で計算して求める。
(3) (2)の結果に基づいて、フニャフニャ輪ゴム画像から補間処理で
  真円の輪ゴム画像を生成

って感じではどう?
0468デフォルトの名無しさん2010/02/07(日) 23:02:43
大体の中心を算出し、その点を中心として高速で回転させることで円が現れる
0469デフォルトの名無しさん2010/02/07(日) 23:17:53
>>467
レスどうも
やっぱりそんな感じで自力で作るしかないんですね。
技術レベル低いのですげー重くなりそう・・・・
0470デフォルトの名無しさん2010/02/07(日) 23:21:42
8の字になってても大丈夫なんかな
0471デフォルトの名無しさん2010/02/07(日) 23:59:30
>>470
そこまでの変形は想定してません。
概ね円に近い画像を入力します。
0472デフォルトの名無しさん2010/02/08(月) 00:04:00
輪ゴムが円になりさえすればいいの?
それとも輪ゴムの中や外も不自然にならないように変形する必要があるの?
0473デフォルトの名無しさん2010/02/08(月) 00:08:14
>>472
輪ゴムのみの変形でOK
背景はどうでもいいです
0474デフォルトの名無しさん2010/02/08(月) 00:19:33
だから中心点と半径さえわかればいいんだろ!なに無視してんだこの野郎!ふざけやがって!ゴムさえ回転させればいいじゃねえか!クソ!なんで無視だよ!
0475デフォルトの名無しさん2010/02/08(月) 00:22:47
それなら「半径」が求まったら「中心」から「半径」の距離にあるゴムの色で円を描く方が良いね
0476デフォルトの名無しさん2010/02/08(月) 00:25:24
ゴムには模様のようなものがあるので
円を描くだけでは駄目なんです
0477デフォルトの名無しさん2010/02/08(月) 00:25:29
そう言ってんだろアホがあああああああああああああああ
0478デフォルトの名無しさん2010/02/08(月) 00:26:38
ゴムに模様なんてねえよ!!!!!!!!!!!!!!!!!!!!どこのコンドームだよ!!!!!!!!!!!!!!!!!!
0479デフォルトの名無しさん2010/02/08(月) 00:30:21
情報の後出しは煽られてもしょうがないよね。
0480デフォルトの名無しさん2010/02/08(月) 09:21:52
>>475が俺の思ってたことを代弁してくれた。
0481デフォルトの名無しさん2010/02/08(月) 16:01:21
それで思い出したけど、銀河系の生成シミュレーションってあるじゃん?
あれって、ちゃんと重力の伝搬は光速に制限しているのかね?
0482デフォルトの名無しさん2010/02/08(月) 16:39:39
たかだか万年のオーダーなんて、無視しない理由がない。
0483デフォルトの名無しさん2010/02/08(月) 19:07:06
>>476
そのゴムのパスと太さを取得して、
パスに沿って画像からテクスチャ情報を取得すればいいんじゃないの?
0484デフォルトの名無しさん2010/02/08(月) 20:27:44
インテグラルイメージの利点がイマイチわからんので教えて。
0485デフォルトの名無しさん2010/02/08(月) 23:16:31
もとの画像の任意の矩形領域の輝度の総和が
インデグラルイメージ上の4つの画素のアクセスで求まる
つまり速い
0486デフォルトの名無しさん2010/02/08(月) 23:34:33
失礼します。
照明のムラやゴミなどの輪郭がボケた部分を除去して、
物のように明暗がクッキリ別れている部分だけ残すには、どのような処理をすれば良いのでしょうか?
0487デフォルトの名無しさん2010/02/09(火) 01:06:26
>>485
その利点はわかってるんだけど、矩形領域の輝度値を知りたいときってどういう処理?
手法によるけどきれいに矩形で領域分割なんかよっぽど特殊な環境じゃなきゃできないと思うんだが。
0488デフォルトの名無しさん2010/02/09(火) 01:24:06
A: 〜がわからないので教えて
B: 〜ってことだよ
A: 知ってる

おれがBならAを笑顔で殴る
0489デフォルトの名無しさん2010/02/09(火) 01:41:12
>>486
具体的に、こんな画像をこう変えたい、という例が図なり画像なりであると
答えやすいけど、何か出せるものあるかな?
0490デフォルトの名無しさん2010/02/09(火) 06:38:21
>>487
顔検出でhaar-like特徴を求めるのに使われている
多重解像度解析とかスケールの異なる矩形で画像を近似するときに高速に実行できる
0491デフォルトの名無しさん2010/02/10(水) 12:40:20
C,C++でExifを簡単に読み込む方法を教えな
0492デフォルトの名無しさん2010/02/10(水) 12:51:32
スレ違いだ失せろゴミ
0493デフォルトの名無しさん2010/02/10(水) 14:02:01
libexif
0494デフォルトの名無しさん2010/02/10(水) 21:19:53
>>489
返事が遅くなってすいません。
この処理がかなり近いですね。
http://www.inotech.co.jp/product/QuickGrain/PadPlus.html

1枚の画像で場所によって明暗差があると、
黒い物だと明るい部分は小さく、暗い部分は大きくなってしまうので、その差を軽減したり、
物は小さくしないで影の部分だけを消せないか考えています。

よろしくお願いします。
0495デフォルトの名無しさん2010/02/10(水) 21:54:51
>>494
こんなんで特許かよ
0496デフォルトの名無しさん2010/02/10(水) 23:18:44
先行技術がありそうだな
0497デフォルトの名無しさん2010/02/10(水) 23:40:27
>>494
普通に画像をブロックで分割して各ブロックの2値化のしきい値を判別分析あたりで
求めてから画素ごとのしきい値を線形補間で求めて2値化すればいいんじゃね。

30年以上前からある基本テクニックで特許の心配抜きで同じようなことが高速にできる。
実際に>>494のリンク先の画像で試したら同等の結果が一瞬で得られた。

注意:判別分析の級間分散を見て背景だけの領域(級間分散が小さい)は除外する。
0498デフォルトの名無しさん2010/02/11(木) 00:04:27
>>494
これハイパスフィルタに似てると思う
Diffrence of Gaussian の差分の代わりに割り算
Gauss ぼかしの代わりに平均値ぼかしを使ってる感じ
0499デフォルトの名無しさん2010/02/11(木) 06:37:01
>>494
例えば、ということで。何か参考になれば。※画像はしばらくしたら消しまっす><;
(1)元画像
http://public.blu.livefilestore.com/y1ps62SNM0S9pQjzIA50lC1FmH1Yv_MJcfRlxGhUW0GMEGgNLA5DscEcgEy3-JSg0morM5ez8YqDXKamTmpP2uIPA/img1.jpg
(2)グレースケールに変換
http://public.blu.livefilestore.com/y1pFz5MtwJ5KURIcbAoMiDwKO7jj3aJJCKVzzh1ULAigu_kvZN7QPKWWpU4CYDZ8ppePYBoh7JWc3NpblETB_96-w/img2.jpg
(3)照明ムラを無くす(各画素を中心とする小領域の輝度分布からホワイト、シャドウを求め、画素値を正規化する)
http://public.blu.livefilestore.com/y1pkFu8XoNwPPH1qxmF7gSC7XLKChDZYi2awx9D_8WBp2yr6mbuX0FITW_07r6L0V-QjedyL8rUeNALoSogQpYVcA/img3.jpg
(4)適当な閾値で2値化
http://public.blu.livefilestore.com/y1pRMmws4GkImGL7Eqbpp1V5ULWCwqdv24n65q4FcGe7DyyHmw5zaohSPFpN5IwrIIjYxOI7XZsCYV67fDOl1YvPQ/img4.jpg
(5)4近傍ラプラシアン値を求め、適当な閾値で2値化
http://public.blu.livefilestore.com/y1pvTloG2T7I0-WWCBbf5CmJb4GtLj5Kmt6END3I5mjhlWFHx03Ij30svWqCTugGAir1j7oJfs35Hstr-1ghGN4_w/img5.jpg
(6)元画像と合成
http://public.blu.livefilestore.com/y1pjdXrXLpunbE77bLEt6qJqYHVlYlqKIwj5lGUGUeqwlgIaz08ToUL8YyKSG4dCPfoWpOXEIHftjFGTVe3FgBcSQ/img6.jpg
0500デフォルトの名無しさん2010/02/11(木) 22:46:29
>>499
すごいなー。>>494さんじゃないけど、とても参考になります。
よろしければ(3)の処理の詳細ご教授ください。
05014942010/02/11(木) 23:57:20
>>497-498
いろいろな方法を考えて頂き、ありがとうございます。

>>497
これが一番簡単そうなのかな?

>>498
前後の周波数帯をカットする部分が似てますね。

>>499
画像での細かい解説、ありがとうございます。
よろしかったら(3)について、もう少し教えて頂けないでしょうか?
輝度分布は画像をブロックに分けているのでしょうか?
0502デフォルトの名無しさん2010/02/12(金) 02:33:32
>>500
>(3)の処理の詳細

>>501
>(3)について


>各画素を中心とする小領域の輝度分布からホワイト、シャドウを求め、画素値を正規化する

これで充分わかるだろ
わからんかったら向いてないわ
0503デフォルトの名無しさん2010/02/12(金) 03:12:47
>>500-501
考え方は、こんな感じです↓
http://n5vqmw.blu.livefilestore.com/y1p9gntFaahsH_0mU3aMVrouSUObAnSxA-F7KyHG8f15-5nmaJBEuDbtocu4CiB8hZA_6LI7CrSnGxw3itf0J4JxQYT2CWkdp22/1.png
実際に変換に使ったプログラムは、こんな感じ↓※即席なので適当ソース(^o^)ノ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10520.txt
0504デフォルトの名無しさん2010/02/12(金) 03:19:38
Cとすぐ隣のC'(さらに領域の大きさだけ連続する)が重なると思うのですが
重なった回数分(1)〜(4)を繰り返しても問題起きないのでしょうか
それともヒストグラム作成用画素値(変換前画像)と
変換後画像用に二つのbitmapを持ってるってことでしょうか

っつーかソース見ろってことですね
0505デフォルトの名無しさん2010/02/12(金) 03:22:25
情弱w
0506デフォルトの名無しさん2010/02/12(金) 03:56:44
>>504

>それともヒストグラム作成用画素値(変換前画像)と
>変換後画像用に二つのbitmapを持ってるってことでしょうか

その通りです (^o^)ノ
0507デフォルトの名無しさん2010/02/12(金) 04:55:30
すげぇ!2chにこんな親切な人が!
0508デフォルトの名無しさん2010/02/12(金) 07:37:42
>>503
おもしろいなぁ。参考になりました。
05094942010/02/12(金) 07:58:21
>>503
細かい解説だけでなく、ソースまで!!
本当にありがとうございます
0510デフォルトの名無しさん2010/02/17(水) 14:30:35
おぬぬめpng書き出しライブラリを教えて
0511デフォルトの名無しさん2010/02/17(水) 15:54:59
お断りしまーす(^o^)ノ
■ このスレッドは過去ログ倉庫に格納されています