トップページ⇒tech
1001コメント329KB

画像処理スレッドその5

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/09/26(月) 12:37:28
・画像処理について素人同士で大激論
・初学者の質問に対してやさしく(的を外れた)解答を与える
・その道の玄人も大歓迎

前スレ
画像処理 その4
http://pc8.2ch.net/test/read.cgi/tech/1107854973/
過去スレッド
画像処理 その3
http://pc5.2ch.net/test/read.cgi/tech/1090897159/
画像処理 その2
http://pc5.2ch.net/test/read.cgi/tech/1054545005/
画像処理
http://pc5.2ch.net/tech/kako/992/992671330.html
01531492005/10/28(金) 14:10:34
>>152
そうなの? もう一辺よく見よう。
0154302005/11/01(火) 14:11:34
離散コサイン変換:
ttp://www.mm.media.kyoto-u.ac.jp/education/DIP/imageproc_fourier.pdf

↑ここが参考になった。
cos( πk(2i+1)/2N )中、(2i+1)の意味が分からなかったのだが、
ようやく分かりかけてきた。

報告まで。
0155デフォルトの名無しさん2005/11/01(火) 14:54:10
画像認識についてのいい参考書ない?
0156デフォルトの名無しさん2005/11/01(火) 15:57:00
>>155
"画像認識"って一口に言っても結構広い範囲含んじゃうよ。
もうちっと絞り込んで具体的に聞いた方がいいのでは?
0157デフォルトの名無しさん2005/11/01(火) 21:34:37
bitmapならファイルフォーマットがわかるから、独自の関数を作れるんだけど。
JPEGはぜんぜんわからん。もうこれは本家のライブラリ引っ張ってくるしかないの?
0158デフォルトの名無しさん2005/11/01(火) 22:42:09
別に他のライブラリでもいいんじゃないの。
VCLとか。
imgctl.dllとか。
0159デフォルトの名無しさん2005/11/01(火) 23:44:19
つ[libjpeg]
つ[ImageMagick]
つ[LeadToolPro]
0160名無し募集中。。。2005/11/02(水) 01:35:16
画像の読み込みはsusieプラグイン使ってるよ
0161名無し募集中。。。2005/11/03(木) 01:24:30
OpenCV LINUX 0.9.7 をインストールして
使ってみようとしたのですが doc を見たところ
疑問に思ったことがあったので、分かる方がいらしたら
ご教授ください。

・POSIT て関数の意味が分かりません。何に使うんですか?
・ステレオ視の対応点探索の関数は、無いのでしょうか?
0162デフォルトの名無しさん2005/11/03(木) 04:18:14
>>161
POSIT : 特徴点位置が既知な物体を撮影した画像から物体の向き位置を推定する関数群?だったと思う。
わかり難い説明文ですまん。使ったことないからよく知らない。

ステレオ : 一つ前のバージョンにはDPで対応付けする奴があったけど、無くなったくさい?オレも困ってるんだけど。
前のバージョンの奴はレンズの歪みとかホワイトバランスの不一致があると対応付けがうまくいかないことが多くて実際あんまり使えないんだよね。
高速で、そこそこ使えるステレオマッチングアルゴリズム知ってる?
オレもいろいろ調べてるんだ。
0163デフォルトの名無しさん2005/11/04(金) 23:46:05
http://www.ces.clemson.edu/~stb/klt/
0164デフォルトの名無しさん2005/11/06(日) 16:01:39
>>163
点で対応付けて三角パッチで補完するってか。
補完作業はVGAで高速にやれるしね。

他に候補無いかね。
01651632005/11/06(日) 16:15:19
岡大の金谷せんせの所でされてるみたいね。
0166デフォルトの名無しさん2005/11/06(日) 16:16:19
<日記>
163と164番号間違えた。
</日記>
0167デフォルトの名無しさん2005/11/07(月) 11:28:31
OpenCVのcvauxあたりのヘッダ眺めてたら
// Name: cvFindStereoCorrespondence
// Purpose: find stereo correspondence on stereo-pair
// Context:
// Parameters:
// leftImage - left image of stereo-pair (format 8uC1).
// rightImage - right image of stereo-pair (format 8uC1).
// mode - mode of correspondence retrieval (now CV_DISPARITY_BIRCHFIELD only)
// dispImage - destination disparity image
// maxDisparity - maximal disparity
// param1, param2, param3, param4, param5 - parameters of algorithm
// Returns:
// Notes:
// Images must be rectified.
// All images must have format 8uC1.
ってのが有ったけど、これってステレオマッチングの関数じゃないのかね?
0168デフォルトの名無しさん2005/11/07(月) 12:20:02
画像の各種拡大アルゴリズムが載っているページか本を教えてください
0169デフォルトの名無しさん2005/11/07(月) 17:17:17
>>168
まず、ググレ。
0170デフォルトの名無しさん2005/11/07(月) 17:32:58
ぐーたらここにつきました
0171デフォルトの名無しさん2005/11/07(月) 20:27:10
>>168
ttp://www.amazon.co.jp/exec/obidos/ASIN/4789833992/
各種と言っても3つくらいだったと思うが。
0172デフォルトの名無しさん2005/11/07(月) 20:43:26
>>171
いや、周波数空間に持っていってとか、
アップサンプリング+アンチエイリアシングとかも入れると、
微妙にいろいろ増えるけど。

その先生、教授になったんだね。一度講演を聞いたことがあって
結構分かりやすかった。でも資料(書籍)は細かいミスがあるので、
二版以降がお勧め。
0173デフォルトの名無しさん2005/11/08(火) 13:16:37
今さらだが、『フルスクラッチによるグラフィックスプログラミング入門』は、
どうやら増刷がかかったらしい。アマゾンで注文できるようだ。

しかし、ちょっと高いなぁ・・・ 図書館に購入申請でもしようか。
0174デフォルトの名無しさん2005/11/08(火) 18:07:43
>>172
171で紹介した本に載っているのが3つくらいってことね。
0175デフォルトの名無しさん2005/11/08(火) 19:07:27
市販の拡大印刷ソフトの印刷結果をショップで見たことあるけど
あんなに拡大してもモザイクっぽくならないのねぇ。
0176デフォルトの名無しさん2005/11/09(水) 15:16:45
あの…質問なんですが
画像を拡大させるときに順変換ではなく逆変換を用いる利点ってなんですか?
0177デフォルトの名無しさん2005/11/09(水) 15:38:35
順変換ってsrc->dest転送ってこと?
やってみればわかるけど、穴空くからでしょ

画像変換の基本はdest->src転送
0178デフォルトの名無しさん2005/11/09(水) 16:08:44
ソースを拡大する、という発想ではなく、拡大後のピクセルの色をソースからどうやって
決定するか、と考えると分かりやすい。リサンプリングにともなう補間はそういうふうに
考えられている。
0179デフォルトの名無しさん2005/11/09(水) 16:09:55
>>176
177が言うように穴が空くし、逆変換のほうがプログラムがシンプルになるよ。
0180デフォルトの名無しさん2005/11/09(水) 16:32:56
穴があくとか、コードがシンプルになる、とかそういう副次的な問題ではないのだが
0181デフォルトの名無しさん2005/11/09(水) 16:48:14
「フルスクラッチによる〜」ってサンプルプログラムはどの言語で書かれてるのでしょうか?
0182デフォルトの名無しさん2005/11/09(水) 16:55:05
C++

LibNeetで検索してみな
01831812005/11/09(水) 17:33:50
>>182
ありがとうございます。
C++わからないけど勉強がてらに読んでみようかな。
0184デフォルトの名無しさん2005/11/09(水) 20:31:36
>>180
本質はどこ?
トリリニア補完でも理論的には順方向も逆方向も変換式は書けるよ。
0185デフォルトの名無しさん2005/11/09(水) 21:35:49
ほんと? 順方向にはそもそも補間すべきデータがないのでは?
0186デフォルトの名無しさん2005/11/09(水) 21:42:26
理論的に完全に順方向補間ができるなら穴あくことはないのでは?
0187デフォルトの名無しさん2005/11/09(水) 22:41:28
特に何も無くて、終わり。大学の同級生は、みんな忙しそうだ。
俺だけこんなんでいいのかな。 帰宅して絵を描きました。
[oC] の細線アンチを理想の形に出来て、まぁ満足だった>仕事。
あぁ、ローテクノロジーな事しかやってないなぁ、恥ずかしい。
取手BOXHILLが閉まってて、無地ノートが買えなくて不満。
あ、あとどういう形だかは教えられないけど、ラブひなポケットでチョイ遊ぶ。
この絵で、声無しっつーのはヤバいね・・・(当然だけど)。
声・絵、双方必要とまでは言わない。
どちらかがハイクオリティなら満足するんだと思うなぁ。
ハイクオリティというか、忠実、というか。
0188デフォルトの名無しさん2005/11/09(水) 22:56:11
>>184
>>185
>>186
拡大率が1以上の場合、最近隣法を順方向でやると穴が空く。
線形補完以上でやると逆変換と同じ。ちなみに処理が面倒。
0189デフォルトの名無しさん2005/11/09(水) 23:26:10
> 線形補完以上でやると逆変換と同じ。

Bicubic でも Bilinear でも2x2、または4x4なんだから、倍率2倍以上
3倍以上では、順方向補間では穴があくのでは?
0190デフォルトの名無しさん2005/11/09(水) 23:29:58
拡大の場合は、1対多の対応関係だから、完全な順方向補間っていうのは
考えづらいが、本当に可能なの?
0191デフォルトの名無しさん2005/11/10(木) 00:33:31
なんかの勘違いじゃないの?
でも、元画像の1ピクセルのデータを出力画像の幾つかのピクセルに振り分けながら計算していくとできそうな気もするな。
?
できるんか?できないんか?
できる気がしてきかけど、そんなコード書こうとは思わんな。
相当面倒くさそうだ。
01921912005/11/10(木) 00:37:53
考えたら単純な線形補完ならできるね。
トリリニアは…頭いい人はかけると思う(w
0193デフォルトの名無しさん2005/11/10(木) 00:55:41
格子状に並んでいないN個の代表画素値(x_n, y_n, I_n)を
与えた場合の画像全体の補間方法としては
どのようなものがあるのでしょうか?

与えられた点をドロネー三角分割して、各座標(x, y)
に対してどの三角形に含まれるか判定してたのですが
どうにも処理が遅すぎます。
0194デフォルトの名無しさん2005/11/10(木) 03:10:21
一対多でシステマティックに割り当て可能なら、Nearest でも穴が開かない論理が可能じゃないの?
この場合、Nearest っていうのは dst ピクセルから見た場合だけど。
0195デフォルトの名無しさん2005/11/10(木) 03:13:11
まっ、どっちにしてもリサンプリングは逆方向で、が論理的に正しい。順方向が
可能かどうかによらず。
0196デフォルトの名無しさん2005/11/10(木) 11:29:47
> 一対多でシステマティックに割り当て可能なら、Nearest でも穴が開かない論理が可能じゃないの?

そう。これが本質。補間の有無は補間範囲が有限な場合、穴があくかどうかに関係ない。
1対多の順方向変換が論理的に可能かどうかにかかっている。
0197デフォルトの名無しさん2005/11/10(木) 12:29:32
>>193
すべての三角パッチをOpenGLとかで一気に描画してZバッファを取得。
0198デフォルトの名無しさん2005/11/10(木) 14:45:28
>>197
んなあほな
0199デフォルトの名無しさん2005/11/10(木) 20:43:02
>>193
N点を通る格子線を引いて、精密な補間法で新しい格子点の画素値を求めてから
バイリニア等の高速な補間をするってのはダメかな?
N^2オーダーで格子点が発生するからNがある程度小さいことが前提となるが
0200デフォルトの名無しさん2005/11/10(木) 21:24:16
>>193
もう少し詳しく。

>>198
良いアイデアだと思うけどな。
02011932005/11/10(木) 22:03:08
>>199
大まかな格子点での値を三角パッチ補間で計算してから
その間を線形補間するという方法でしょうか?
三角パッチだと複雑な輪郭形状でも綺麗に表現できるのが
利点だと思いますが、大まかな格子状では輪郭部分が
ぼけてしまいそうです。

>>200
ようするに164のように2枚の画像のマッチングを特徴点ベースで
行って特徴点間の補間をやりたいのです。
点列→3角形パッチの変換はドロネー分割でやって、
任意座標の濃度値はどの3角形パッチに含まれるか調べて補間してました。

今気付いたのですが全ての三角形を塗りつぶしていけば高速にできそうですね・・
逆方向での補間方法しか頭にありませんでした。
OpenGLはどういう方法でやっているのだろう。

0202デフォルトの名無しさん2005/11/10(木) 22:45:42
>>197
頂点カラーで単純にシェーディングする方法もあるよね・・・
0203デフォルトの名無しさん2005/11/10(木) 23:21:06
>>202
Zバッファとるより素直な方法かも♪
0204デフォルトの名無しさん2005/11/12(土) 17:26:33
.          \                /
.           \             /
.             \          /
.              \ ∧∧∧∧/
.               <    俺 >
.               < 予 し  >
.               <    か  >
. ─────────< .感 い  >──────────
.               <    な  >
.               < !!!! い  >
.               /∨∨∨∨\
.              /         \
.            /            \
.           /     (-_-)       \
.         /       (∩∩)        \
0205デフォルトの名無しさん2005/11/12(土) 17:49:24
^^
0206名無し募集中。。。2005/11/12(土) 19:05:36
画像認識だったり、画像加工だったりするからな、このスレは
0207デフォルトの名無しさん2005/11/12(土) 19:10:29
すんません質問です。
カラー画像のラベリングをしたいのですが、良いアルゴリズムはないでしょうか?
画像サイズは640*480。色数は50色程度で、4近傍でのラベリングです。
再帰的な方法でやってみたのですが、再帰の処理が4のn乗で増えていくので途中で落ちてしまいます。
開発環境はVC++ SDK で、画像処理に関することはcomctl32.libを使用しています。
よろしくですm(_ _)m
0208デフォルトの名無しさん2005/11/12(土) 19:37:07
色毎に逐次ラベリングはどうかな
0209デフォルトの名無しさん2005/11/12(土) 22:00:36
ラベリングの質問と回答は画像処理の過去スレにたくさんでとる
画像処理 その2が参考になるかな
0210デフォルトの名無しさん2005/11/14(月) 11:27:55
.          \                /
.           \             /
.             \          /
.              \ ∧∧∧∧/
.               <    俺 >
.               < 予 し  >
.               <    か  >
. ─────────< .感 い  >──────────
.               <    な  >
.               < !!!! い  >
.               /∨∨∨∨\
.              /         \
.            /            \
.           /     (-_-)       \
.         /       (∩∩)        \
0211デフォルトの名無しさん2005/11/15(火) 19:04:22
過去ログのdatを全て持っている人いましたら、うpしてもらえませんか?
0212デフォルトの名無しさん2005/11/15(火) 19:24:32
にくちゃんねるは見に行ったのかね?
0213デフォルトの名無しさん2005/11/15(火) 20:19:22
専ブラで見たいので、datが欲しいのですが…。
0214デフォルトの名無しさん2005/11/15(火) 20:22:02
あそこもdat手に入るじゃん
0215デフォルトの名無しさん2005/11/15(火) 20:37:28
にくちゃんねるでdat手に入るんですか?
あと、画像処理 その2 が見つかりません。
0216デフォルトの名無しさん2005/11/15(火) 21:15:40
質問です。
squares.obj : error LNK2001: 外部シンボル "_cvReleaseImage" は未解決です』
というエラーがたくさんでます。
何か設定が足りないのでしょうか?
OSはXPです。
0217デフォルトの名無しさん2005/11/15(火) 21:19:38
つ【google】
02182162005/11/15(火) 21:19:52
忘れました。
openCVをvisual C++ 6.0で動かす場合です。
0219デフォルトの名無しさん2005/11/15(火) 21:43:33
>> 216
linkerの設定で、OpenCVのlibを指定すれば直ると思うよ。
0220デフォルトの名無しさん2005/11/15(火) 22:09:05
cもしくはc++で、jpegの画像を読み込み、ピクセルを抽出し、jpegとして
書き出すという単純なことをまず行いたいと思っているのですが、
画像処理を研究、あるいは勉強している人だったら
とりあえずこれ使うよっていうものにどのようなものがあるでしょうか?

とりあえずOpenCVをダウンロードしてやっているのですが、このほかに
フリーで使えるものがあればお願いします。
0221デフォルトの名無しさん2005/11/15(火) 22:12:07
>>220
>>158-160
0222デフォルトの名無しさん2005/11/16(水) 01:47:41
>>220
君はまず219に反応するべきだと思った
0223デフォルトの名無しさん2005/11/16(水) 12:05:12
>>216
もしかして、サンプルのsquaresをビルドしようとしてる?
OpenCV\_makeのopencv.dswからプロジェクト開いてビルドすべきだと思うよ。
0224デフォルトの名無しさん2005/11/16(水) 12:07:55
>>220
PNGとかPPMみたいな単純なフォーマットに変換してから使うってのは無し?
研究用のプログラムならこのくらいで十分でしょ。
02252162005/11/16(水) 18:53:58
>>223
ビルドできました。ありがとうございます★
0226デフォルトの名無しさん2005/11/17(木) 00:00:06
>>224
PNGのどこが単純?
まぁ、JPGと違って可逆圧縮だからJPG使うよりましなわけだが。
0227デフォルトの名無しさん2005/11/17(木) 00:06:05
OpenCVってカメラの画像を非圧縮aviで動画として保存したりできます?
0228デフォルトの名無しさん2005/11/17(木) 00:40:42
>>221
ありがとうございます.

>>225
確かに同じ画像使うならppmでもよさそうですね.
0229デフォルトの名無しさん2005/11/17(木) 19:54:33
>>227
動画出力はWindowsでしかできないつーことで、私は使ったことがないっす。
たぶん、DirectX使ってるだろうからできるんじゃない?
0230デフォルトの名無しさん2005/11/17(木) 19:56:30
>>226
PGMのうち間違いだと思われ。
0231デフォルトの名無しさん2005/11/22(火) 01:52:02
>227 >229 LINUX用OpenCVでも、FFMPEGのライブラリをインストールすれば
動画出力できるよ。
関数はcvCreateVideoWriter(),cvWriteFrame()とか。

FFMPEGはたくさんのCODECに対応してるみたい。
でもOpenCVがFFMPEGを呼び出すところで、数種類以外のCODECだと
エラーを返すようなソースになってる
otherlib/highgui/cvcap.cpp だったかな。
CODEC_ID_云々かんぬんってところ。

後は、その保存した動画ファイルからキャプチャする、
cvCaptureFromAVI だっけ。この関数、ファイル名から
CODECを予想したりしてるみたい。

僕自身もよく分かってなくて、
OpenCVでカメラ画像を動画として保存できたけど、
それを再生するところまでは出来てないんですよね。
(mpeg1では普通に出来てますが)

画像処理に使うので、CODECは可逆圧縮のhuffYUVとか
使いたいと思っているんですけど、キャプチャの関数で
読み込めないんですね。

誰か、分かってる人いましたらご教授ください。
長文スマソ
0232デフォルトの名無しさん2005/11/25(金) 05:09:15
画像の先鋭度判定(ピントが合ってるかどうか)ができる
コードはどこかに公開されてないでしょうか?
0233名無し募集中。。。2005/11/25(金) 16:23:14
BOOL IsFocus( WORD *RowData );
0234デフォルトの名無しさん2005/11/26(土) 09:14:17
ひどい(笑)
0235デフォルトの名無しさん2005/11/26(土) 11:29:09
>>233
Win厨乙
0236デフォルトの名無しさん2005/11/26(土) 18:18:33
処理にMMXとかSSE使ってる人いる?
どうやって入門したら良いの?
0237デフォルトの名無しさん2005/11/26(土) 18:42:13
>>236
ふつうに一般のアセンブラで組むのと(もっと言えばC言語の場合と同じで)
同じ要領でやればいいだろ。
最初から最適化とかカリカリに考えず、確実に動くコードを作成して
改良していけば良いと思うよ。
0238名無し募集中。。。2005/11/26(土) 21:49:54
でもよほどうまく書かないとコンパイラのほうが早いコードをはくよ
0239デフォルトの名無しさん2005/11/28(月) 00:02:28
各バンドが16bit-depthの画像(16bitTIFFとか)の
読み書きができるライブラリはご存知ないですか?
GNUのLIBTIFFだとできないようです。
0240デフォルトの名無しさん2005/11/28(月) 00:08:28
>>239
つ[ImageMagick]
0241デフォルトの名無しさん2005/11/28(月) 00:47:55
つ[libPNG]
0242デフォルトの名無しさん2005/11/28(月) 01:33:48
libPNGでどうやって16bitTiffを扱えというのだろう。
0243デフォルトの名無しさん2005/11/28(月) 01:59:21
「とか」って書いてあるから別にフォーマットは何でもいいんじゃねえの?
0244デフォルトの名無しさん2005/11/28(月) 02:56:30
逆に寧ろ、tiffを含む複数のフォーマットを扱いたいのでは?
0245デフォルトの名無しさん2005/11/28(月) 03:02:11
というわけで、>>239はどうしたいのか言ってくれ
02462392005/11/28(月) 03:34:46
ImageMagick(コマンドラインのほう)を使うと画像操作ができました。
ソースみるとLIBTIFFを使っているようですね。
ということはLIBTIFFでも16bit読み込みできるということだけど
おとなしくImageMagickでrawデータに変換して使うことにします。
ありがとうございました。
02472392005/11/28(月) 03:38:30
「とか」という表現でお騒がせしました。入力が巨大サイズ16bitTIFF、
要するに衛星画像なんですが、扱いづらいので、なんとか簡単に読み込む、
もしくは他のフォーマットに変換する方法を探してました。
0248デフォルトの名無しさん2005/11/28(月) 06:44:26
ImageMagickのコマンドラインってConvert?
あれってすごく便利だよね〜。
シェルスクリプト組んで一気に変換とか便利すぎ。
作った人に感謝してるよ。
0249デフォルトの名無しさん2005/11/28(月) 11:26:43
LibTiffはコンパイルオプションを指定しないと8ビットのみ対応じゃなかったかな。

ImageMagickは確か8ビット版と16ビット版の両方を配布してた気がするけど。
convertが余りに便利でスタティックライブラリとして使わずにプロセスとして使うもんだから、
既にインストールされていたImageMagickが8ビット版でそっちが呼ばれててバグったって話を聞いたよ。
0250デフォルトの名無しさん2005/11/28(月) 22:06:41
>>236
金が有ればIntel C++ Compiler使うのもよし。
シンプルなループは軒並みSIMD命令でベクトル化される。
俺のヘタッピソースでもVC6.0と比べて4倍高速化されたこともあった。
0251ちもし2005/11/29(火) 21:52:16
淫厨宣伝乙
0252デフォルトの名無しさん2005/11/29(火) 21:56:07
>>250
それはアルゴリズムが蛸で、シンプルなループだらけだったということで宜しいか。
■ このスレッドは過去ログ倉庫に格納されています