【Intel】OpenCV総合スレ【画像処理】2
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2008/12/29(月) 09:47:36実装分野は
・ユーザーインターフェイス
・物体分離
・セグメンテーションと認識
・顔認識システム
・ジェスチャー認識
・モーショントラッキング
・感情モーション
・モーション理解
・モーションからの構築(SFM)
・モバイルロボティクス
前スレ
【Intel】OpenCV総合スレ【画像処理】
http://pc11.2ch.net/test/read.cgi/tech/1182830261/
関連リンクなどは
>2-10くらい
0002デフォルトの名無しさん
2008/12/29(月) 09:48:03画像処理 その8
ttp://pc11.2ch.net/test/read.cgi/tech/1168868527/
【関連リンク】
OpenCVメモ - PukiWiki
ttp://nautilus.cs.miyazaki-u.ac.jp/~yoshi/pukiwiki/index.php?OpenCV%A5%E1%A5%E2
FrontPage - OpenCV@Chihara-Lab.
ttp://chihara.naist.jp/people/2004/kenta-t/OpenCV/pukiwiki/
OpenCV による画像処理
ttp://www-cv.mech.eng.osaka-u.ac.jp/~hamada/openCV/
OpenCVをVisual Studio .NETで使う
http://luvtechno.net/h/?OpenCV
こめIntel、画像処理ライブラリ「OpenCV 1.0」を公開
http://journal.mycom.co.jp/news/2006/11/08/360.html
0003デフォルトの名無しさん
2008/12/29(月) 09:49:34http://pc11.2ch.net/test/read.cgi/tech/1222593978/
0004デフォルトの名無しさん
2008/12/29(月) 09:54:41http://opencvlibrary.sourceforge.net/
リファレンス日本語訳
ttp://www.opencv.jp/reference/
0005デフォルトの名無しさん
2008/12/29(月) 10:10:06動画から物体Xを捜してその物体Xだけを綺麗に抜き出したいのですが上手くいきません。
なにかいい方法教えてください
ちなみに物体Xは例えば袋とかの時もあり、常に直線のみや曲線のみで構成されてるとは限りません。
とりあえずその物体Xの特徴からある程度の位置を割り出してその辺りの部分だけを抜き出す。
ここまではおおざっぱにですがどうにか成功しました。次は
グレースケール化→二値化→cvFindContoursで輪郭抽出またはエッジ抽出
でやってみたのですが二値化の時点で微妙に欠けたりはみ出たりして輪郭もエッジ
もうまくとれません。綺麗にその物体Xを抜き出す処理の手順とできれば使用する
関数も教えてもらえたら助かります
0006デフォルトの名無しさん
2008/12/29(月) 17:06:570007デフォルトの名無しさん
2008/12/29(月) 17:46:570008デフォルトの名無しさん
2008/12/31(水) 01:22:17仕様ですか?バグですか?
後々も座標上下反対に考えないといけないんでコマリマックス
0009デフォルトの名無しさん
2008/12/31(水) 10:28:540010デフォルトの名無しさん
2008/12/31(水) 18:17:56cvNextTreeNodeで輪郭ひとつ抜き出してCV_GET_SEQ_ELEMで座標みて外側を黒に、
内側を白に塗りつぶしてマスク作ってコピーするしかない?
もっと簡単に出来る方法あれば教えてください
0011デフォルトの名無しさん
2009/01/03(土) 19:45:51画像処理は基本的に個別対応しかない。
テンプレートマッチング&Sobelなどの基本操作で無理ならば、対象画像を示す以外に回答は出ない。
0012デフォルトの名無しさん
2009/01/04(日) 19:02:32読めるAVIのコーデックの種類とかって増えたりした?
0013デフォルトの名無しさん
2009/01/05(月) 00:05:35以下2件デッドリンク.次スレから削除よろしく
OpenCVメモ - PukiWiki
ttp://nautilus.cs.miyazaki-u.ac.jp/~yoshi/pukiwiki/index.php?OpenCV%A5%E1%A5%E2
OpenCV による画像処理
ttp://www-cv.mech.eng.osaka-u.ac.jp/~hamada/openCV/
0014デフォルトの名無しさん
2009/01/05(月) 00:13:14前バージョンからシステムに依存してたから関係ないと思う.
WindowsならCCCP導入後にH.264とか読み込めるからさ.
0015デフォルトの名無しさん
2009/01/05(月) 19:49:25Uncalibratedのときはhartleyって載ってるんだけど
0016デフォルトの名無しさん
2009/01/06(火) 11:42:57今のテスト環境は、AthlonX2 4000+で速度的に不満が無いレベルだからkumaを使えば
もう少し幸せになれるかなと思ってます。
ソースを読む限りは特にSSEやマルチスレッドを使ってる訳では無さそうなので、
クロックとキャッシュ容量で差がつくのかなと考えてます。
だけど、タダで使わせて貰ってるんだからIntelに貢献するべきかな?
0018デフォルトの名無しさん
2009/01/07(水) 11:20:41速度的に不満がないならこれ以上幸せになりようがないと思いますw
ハード板住民垂涎の品のみで周辺機器が構成されているなら
CPUにお金使ってもいいんじゃないwもう他に使い道ないでしょwww
0019デフォルトの名無しさん
2009/01/07(水) 21:57:03(画像の二値化 cvThreshold, cvAdaptiveThreshold)についてなんですが、
サンプルプログラムを実行するとそれぞれ
edge.c:21: error: too few arguments to function 'cvSobel'
edge.c:22: error: too few arguments to function 'cvConvertScaleAbs'
edge.c:25: error: too few arguments to function 'cvLaplace'
edge.c:26: error: too few arguments to function 'cvConvertScaleAbs'
edge.c:29: error: too few arguments to function 'cvCanny'
及び
nitika2.c:26: error: too few arguments to function 'cvSmooth'
nitika2.c:35: error: too few arguments to function 'cvAnd'
nitika2.c:39: error: too few arguments to function 'cvSmooth'
nitika2.c:40: error: too few arguments to function 'cvAnd'
という同様のエラーが出てしまいます。
どなたか分かる方がいたら教えて頂けないでしょうか。
0020デフォルトの名無しさん
2009/01/08(木) 02:33:36辞書引こうよ.
引数が少なすぎます って意味です.
リファレンスをちゃんと読めば解決できるよ.
0021デフォルトの名無しさん
2009/01/08(木) 16:27:36C++としてコンパイルする。あるいは、
デフォルト引数を使えない言語としてコンパイルするなら、
ちゃんと足りない引数を自分で与えなきゃだめだよ。
…
って書いてあったよ。
0022デフォルトの名無しさん
2009/01/09(金) 00:25:00さっそく、いろいろ試してみたいと思います。
ありがとうございました。
0023デフォルトの名無しさん
2009/01/10(土) 01:52:18普通に値をとろうとして int にキャストしてたんですよ.
そしたらマイナスの値がでて正確なRGB値がよくわからずにいたんです.
+127とか(unsigned int)とかして正しい数値をとろうとしてもうまくいきませんでした.
それでリファレンスサイトのサンプルコードを見て,(unsigned char)で値を受けてからキャストしてみたんですよ.
そしたらようやく正確なRGB値を取ることができました.
質問ではないんですけど嬉しくって報告しました.
失礼しました.
0024デフォルトの名無しさん
2009/01/10(土) 15:21:43なんか利点あるの?
0025デフォルトの名無しさん
2009/01/10(土) 17:33:030026デフォルトの名無しさん
2009/01/14(水) 18:43:49フィルタをかけているんだけど、
結果が負のときってどうなるの
0027デフォルトの名無しさん
2009/01/15(木) 10:09:280028デフォルトの名無しさん
2009/01/15(木) 19:01:20結果が負って何?cvFilter2Dはvoid関数だったけど?
0029デフォルトの名無しさん
2009/01/15(木) 21:14:190030デフォルトの名無しさん
2009/01/15(木) 21:22:26出力してためせばいいじゃねえか
0031デフォルトの名無しさん
2009/01/15(木) 23:11:00リファレンスのサンプルだとcvSolveやcvLaplaceは
8U(符号無し)で入力して、16S(符号付)で出力をした後
cvConvertScaleAbsで8Uに戻してる。
cvFilter2Dも同じ様にするのかなと思ったんだけど、cvFilter2Dは入力と出力のタイプ
を同じにしないとエラーになるので、あれっ?っとなった。
自作のフィルタでためしたところ、負の画素はゼロになってるようなんだけど、
これであってるのかな?
0032デフォルトの名無しさん
2009/01/19(月) 00:27:440033デフォルトの名無しさん
2009/01/21(水) 00:56:35検出の精度をあげるソースってだれか持ってる?
0034デフォルトの名無しさん
2009/01/23(金) 03:40:370035デフォルトの名無しさん
2009/01/23(金) 06:13:25メモリエラーが起きて計算できませんでした。
エラーを回避する方法はないでしょうか
0036デフォルトの名無しさん
2009/01/23(金) 07:00:08いっぺんに計算する必要が無ければ分割したら?
0037デフォルトの名無しさん
2009/01/23(金) 08:20:06/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ まピョーん☆
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
003835
2009/01/23(金) 09:10:24システムのメモリ確保領域をふやしたり、いろいろやってみましたけど、無理でした。
式を作り直して分割しないと無理そうですね。
やってみます。
0039デフォルトの名無しさん
2009/01/24(土) 10:25:490040デフォルトの名無しさん
2009/01/26(月) 05:06:32opencv1.1pre1に使うffmpegの推奨revはどこを参照すれば分かりますか?
動作報告も頂けるとありがたいです.
0041デフォルトの名無しさん
2009/01/26(月) 06:03:01例えば、右上には黄色い四角、左下には赤い四角が有る
と言う事をOpenCVの関数だけを使って認識する事は可能ですか?
それとも、黄色い四角、赤い四角があるというだけで、
右上や左下は認識できないでしょうか?
0042デフォルトの名無しさん
2009/01/26(月) 06:30:200043デフォルトの名無しさん
2009/01/26(月) 06:34:08物体があることは分かってる?
重心座標でよければそれぞれの物体を切り出した2値画像に
cvMoments, cvGetSpatialMomentでいけそうな気がします。
0044デフォルトの名無しさん
2009/01/26(月) 20:19:10同一画像はマッチ度10位前後になってしまいます。
小さい画像をcvLoadImageしてから大きい画像と同じ大きさに拡大したところ1位になりましたが、
大きい画像を小さい画像にして比較するとまたマッチ度は10位前後になってしまいます。
大きさの違うだけの画像を見つけ出すうまい方法ってありませんか?
0045デフォルトの名無しさん
2009/01/26(月) 20:53:02初心者にはお勧めしませんが、Linuxが使えるならGimpで出来ます。
0046デフォルトの名無しさん
2009/01/27(火) 01:03:36ttp://www.eml.ele.cst.nihon-u.ac.jp/~momma/wiki/wiki.cgi/OpenCV/複数台のカメラ.html
ソースはほぼこのままで、2カメラにしただけです。
するとUSBカメラ(device0)の方は固まりがちで1fpsもでないくらいなのに、
ノートPCに内臓されてるカメラ(device1)の方は解像度が高くしてもスムーズに動作します。
USBの方はYUY2->RGB24の変換をしてるみたいなのでここに時間がかかってるんでしょうか?
VideoInputの出力を貼っておきます。
***** VIDEOINPUT LIBRARY - 0.1991 - TFW07 *****
VIDEOINPUT SPY MODE!
SETUP: Looking For Capture Devices
SETUP: 0) USB モヌェ ヌミ、ケ
SETUP: 1) Integrated Camera
SETUP: 2 Device(s) found
SETUP: Setting up device 0
SETUP: USB モヌェ ヌミ、ケ
SETUP: Couldn't find preview pin using SmartTee
SETUP: Setting capture size to 320 by 240
SETUP: Media Type is YUY2 converted to RGB24
SETUP: Capture callback set
SETUP: Device is setup and ready to capture.
SETUP: Setting up device 1
SETUP: Integrated Camera
SETUP: Couldn't find preview pin using SmartTee
SETUP: Setting capture size to 320 by 240
SETUP: Media Type is RGB24 no conversion needed
SETUP: Capture callback set
SETUP: Device is setup and ready to capture.
004746
2009/01/27(火) 01:10:35自己解決しました。
VideoInputのusb devices - PLEASE READ.txtを読んでませんでした。
USBポートの電源の管理の設定を変えるとで解決しました。
スレ汚しスマソ
0048デフォルトの名無しさん
2009/01/27(火) 12:49:18Gimpはレタッチソフトですよね?
サムネイルが作りたいわけではなくて、サムネイル画像を探したいんです。
それともLinuxバージョンのGimpのみに画像比較機能があるんでしょうか?
0049デフォルトの名無しさん
2009/01/27(火) 13:45:21scriptFuをマスターしている奴はおらぬか
0050デフォルトの名無しさん
2009/01/27(火) 14:35:05ラプラシアンフィルタをかけたあとで,ゼロクロス画像を得ることは可能ですか?
0051デフォルトの名無しさん
2009/01/27(火) 19:26:320052デフォルトの名無しさん
2009/01/28(水) 00:55:34画像全体の大きさが違うだけで、
一部だけ切り取られたり回転したりしてないんなら
単純に大きさをそろえて差分をみればいいんじゃない?
0053デフォルトの名無しさん
2009/01/29(木) 18:14:04大学生レベルの英語ができる人なら普通に読めると思う
0054デフォルトの名無しさん
2009/01/29(木) 21:27:030055デフォルトの名無しさん
2009/01/29(木) 21:46:04>ゼロクロス画像を得ることは可能ですか?
セクロス画像を得ることができますかに見えた俺はもう末期。
0056デフォルトの名無しさん
2009/01/31(土) 23:06:48どこかに解説があるのでしょうか?
0057デフォルトの名無しさん
2009/02/02(月) 03:33:16ゼロクロス画像というのは,2値のみで表されるエッジ画像という認識であっていますか?
0058デフォルトの名無しさん
2009/02/03(火) 09:06:43/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ intel owattel !!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0059デフォルトの名無しさん
2009/02/03(火) 11:26:050060デフォルトの名無しさん
2009/02/05(木) 01:22:05cvCreateVideoWriterを使ってファイルに保存したいのですが
処理が重いので困っています
QVGAのカメラが2つあるだけでカクカクになってしまいます
非圧縮でやっているので、処理としては取り込みとキーの判定だけです
なのでなぜこんなに重くなるのかがわかりません
キャプチャした画をウィンドウ表示しているときはそんなに遅くないように見えるのですが
AVIにするのにそんなに時間がかかるのでしょうか。
それともカメラ2台でそんなに厳しいのでしょうか
0061デフォルトの名無しさん
2009/02/05(木) 06:36:08QVGAのピクセル数×3(色数)×15(くらいか?fps)=?
これを常時HDDに書き込んでいる。
バカデカいIplImageの配列を確保してCopyImageすりゃ速い。
SaveImageは後でやる。
0062デフォルトの名無しさん
2009/02/05(木) 14:23:380063デフォルトの名無しさん
2009/02/05(木) 14:26:04ソースコード読んでみたら?
0064デフォルトの名無しさん
2009/02/05(木) 16:16:03さっぱり動かんです。
0065デフォルトの名無しさん
2009/02/05(木) 17:55:420066デフォルトの名無しさん
2009/02/05(木) 18:11:310067デフォルトの名無しさん
2009/02/05(木) 18:17:57動かないのはPCがイかれてるかキミの設定が悪いかだ,こんなところに書き込むより周りの人に相談しなさい
0068デフォルトの名無しさん
2009/02/05(木) 18:20:150069名無し募集中。。。
2009/02/05(木) 19:21:23コードが問題なのではなくてVS2008が原因である事を確認するために
こんなテストをしてその結果がこうなったからだ。
くらい書いて欲しいって事かな、簡単に言うと。
0070デフォルトの名無しさん
2009/02/05(木) 20:50:39007160
2009/02/05(木) 22:35:22トンクス。
HDDの書き込み速度がわからないけど、
確かにメモリに入る限り詰め込んだ方がよさそうですね
やってみます。ありがとうございました。
0072デフォルトの名無しさん
2009/02/05(木) 22:36:43サンプル動かすのにVCかどうかなんて関係ないと思うけど、
なんなら自分でビルドし直したら?
007360
2009/02/06(金) 00:55:07キャプチャ後にファイルに保存するようにしたところ
カクカク感が解消されました!
でも1カメと2カメでフレームレートが全然違います。
処理の順番に影響されるのかな?
つい最近リリースされたvideoInputはフレームレートが設定できるそうなので
明日か週末にでも試してみます
USBカメラでもうまくいくのかどうか
0074デフォルトの名無しさん
2009/02/06(金) 02:54:03リビルドする時はそれに非対応の奴を選んで、
ついでにいくつか出る警告を無視してリビルドすれば
VC2008でもサンプルが普通に動いたな.
0075デフォルトの名無しさん
2009/02/06(金) 06:27:32/ / \\ < すごい新参感を感じる。今までにない何か酷い新参感を。 >
| (゚)=(゚) | < 厨・・・流入してきてる確実に、コピペブログから、俺たちのほうに。 >
| ●_● | < 雑談はやめよう、とにかく最後までネタ作ってやろうじゃん。 >
/ ヽ < ネットの画面の向こうには沢山のゆとりがいる。決して一人じゃない。 >
| 〃 ------ ヾ | < 戦おう。そしてともにネタを投稿しよう。 >
\__二__ノ < ゆとりや厨の糞レスは入るだろうけど、絶対に流されるなよ。 >
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
0076デフォルトの名無しさん
2009/02/06(金) 10:04:12USBコントローラの帯域制限に引っ掛かってない?
videoInputでカメラの設定ダイヤログを開いてUSBの帯域を下げるか、別のUSBコントローラに刺すとか。
0077デフォルトの名無しさん
2009/02/07(土) 01:32:21http://opencv.willowgarage.com/wiki/VC2008Express
上記URLに書いてある C:\Program Files\OpenCV\_make\opencv.vs2005.no_openmp.sln
でリビルドすればいいということですか?
007873
2009/02/09(月) 01:10:172台ともうまく動きました。
>>76
アドバイスありがとうございます。
カメラの設定ではUSBに関する設定はできませんでした。
別のUSBコントローラというのは、単純に別のUSBポートと考えていいのでしょうか?
デバイスマネージャには以下のように「コントローラ」と「ハブ」が8個ずつ並んでますが、
http://www.csync.net/service/file/view.cgi?id=1234109080
そもそも4つしかないので違和感があります。
0079デフォルトの名無しさん
2009/02/09(月) 07:16:07デスクトップを組んだ事があれば分かると思うが、マザーボード上あるいは拡張ボードで
根っこから別のポートになっていれば独立したUSBコントローラ。
前と後ろのポートを使えば大抵別だと思う。
0080デフォルトの名無しさん
2009/02/09(月) 20:27:32ttp://www.eml.ele.cst.nihon-u.ac.jp/~momma/wiki/wiki.cgi/OpenCV/複数台のカメラ.html
のソースを使って複数台キャプチャーできるようにしたのですが、
画像にノイズが入ります。
ノイズはカメラ視野内に移動物体を配置しなければ発生せず、
画像サイズ(640*480)を小さく(320*240)するとほとんど目立たなくなります。
おそらくmemcpyのところでノンインターレース方式でデータを取得しているため、
前フレームのデータをコピーし終わる前に次のフレームのデータを取得してしまうことが
原因だと思うのですが、この問題を解決するにはどうしたらよいでしょうか?
0081デフォルトの名無しさん
2009/02/13(金) 21:52:22大した手間でもないから結局自分で書いたけど。
あとcvBlobslibも全然使えないね。地の画素値が0だとカウントしてくんないし。
だれか使い勝手のいいラベリング実装してないかね。
0082デフォルトの名無しさん
2009/02/13(金) 21:54:580083デフォルトの名無しさん
2009/02/13(金) 23:51:500084デフォルトの名無しさん
2009/02/14(土) 00:16:25多値画像対応を謳ってるけど画像の4辺が255で囲まれてると対応してくれないんだよ。
多値画像だと単純に反転というわけにはいかない
0085デフォルトの名無しさん
2009/02/14(土) 00:19:28文句あんならソースに手を加えれば良い。
0086デフォルトの名無しさん
2009/02/14(土) 14:48:39録画するのに
カメラから画像をキャプチャし、ファイルに書き出すやりかたがわかりません
cvcaptureじゃ取り込めないみたいだからどーすればいいか分かる方いらっしゃいますか?
0087デフォルトの名無しさん
2009/02/14(土) 17:34:16日本語が破綻してるけど、こういうことがしたいの?
http://chihara.naist.jp/opencv/?%A5%AD%A5%E3%A5%D7%A5%C1%A5%E3%A1%F5%C6%B0%B2%E8%A5%D5%A5%A1%A5%A4%A5%EB%BD%D0%CE%CF
0088デフォルトの名無しさん
2009/02/14(土) 19:23:41サンプルプログラム実行しようとしたら以下のようなエラーが出ました。
OpenCV ERROR: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support)
心あたりがある人いませんか?
※ make installやらbuild_all.shまで成功したのにcvNamedWindow()で失敗するみたいですが。
インストールの参考にしたのは以下のページです。
http://vision.kuee.kyoto-u.ac.jp/~yosimoto/opencv/opencv-howto/opencv-install.html
0089デフォルトの名無しさん
2009/02/14(土) 20:34:110090デフォルトの名無しさん
2009/02/14(土) 20:42:34そういうことです;;
ネットワークカメラから、そのプログラムを利用して録画したいんですが・・・
0091デフォルトの名無しさん
2009/02/15(日) 14:33:28ネットワークカメラのことがわからないんだけど、
OpenCVでは認識できないからキャプチャーできないってことかな
カメラの映像はBMPでとってくるしか手段がないの?
そうなら>>87の例のキャプチャ部分(cvQueryFrame())の変わりに、
そのBMPをcvLoadImageで読み込む処理を入れたらよさそう
0092デフォルトの名無しさん
2009/02/15(日) 14:36:48あ、あと肝心なことを言い忘れた。
ググレカス
ttp://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200809/08090011.txt
0093デフォルトの名無しさん
2009/02/15(日) 15:07:17今ひとつ使い方が理解できていません。
http://opencv.jp/sample/estimators.html#condensation では
cvConDensInitSampleSetのupperとlowerで画像全体を指定していますが、
特定の初期位置がわかっているものを追いかける場合は
ここでその位置を与えてやればよいのでしょうか。
また、対象が複数ある場合はそれぞれのCvConDensationを用意するのでしょうか。
二つの位置が重なったとき、両方のパーティクルが片方についていかないための工夫があれば教えてください。
速度の違いがあれば分離できるのかな……
0094デフォルトの名無しさん
2009/02/16(月) 22:32:12OPEV_CVのコンパイルがどうしてもできなく困っているので教えて下さい。
OS Vista
コンパイラ Visual Stadio 2005 professional SP
.NET Freamwork Sp2
Open CVのインクルードファイルやライブラリ、プロジェクトの設定などは
http://chihara.naist.jp/people/2004/kenta-t/OpenCV/pukiwiki/index.php?%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
を参考に行っています。
他のXPのPCで行うと動くのですが、なぜかVisutaで動きません。
OPENCVはOSに依存するのでしょうか?
自分のPCはVisutaなのほとほと困っています。
エラーはプログラムによって変化し、
C1083: include ファイルを開けません。'afxwin.h': No such file or directory
や、
fatal error LNK1104: ファイル 'cxcored.lib' を開くことができません。 cvsample
です。
他のPCで動きます。
また、VSもフルイントールしています。
0095デフォルトの名無しさん
2009/02/16(月) 22:42:31試しにVisual Studioを管理者として実行させてみ
0096デフォルトの名無しさん
2009/02/16(月) 23:14:510097デフォルトの名無しさん
2009/02/16(月) 23:36:27俺は微笑ましい気持ちになった。今夜はよくネムレソウダ
0098デフォルトの名無しさん
2009/02/17(火) 00:02:44パスがあってないんだろうな、
と思うけど、そもそもOpenCVの質問じゃないだろうから、
がんばれ、って言いたい・・・・・・・・・・・・・・・・
C1083: include ファイルを開けません。'afxwin.h': No such file or directory
==============================
そんなファイルかディレクトリはないよ!
0099デフォルトの名無しさん
2009/02/18(水) 00:07:26ググレカス
http://www.google.co.jp/search?rlz=1C1GGLS_jaJP300JP303&sourceid=chrome&ie=UTF-8&q=afxwin.h
0100デフォルトの名無しさん
2009/02/18(水) 19:12:11ありがとうございます。
原因なんですけれども、OpenCVのバージョンの問題でした。
良く見たら1.1を使用していました。
なので1.0を入れたらサンプルプログラムの方はすんなりと動いてくれました。
ただしビルドしたいプログラムは、MFCのところは動かなかったです。
原因はまだわかりません。XPだと動いてくれたのですが…
他も調べてみます。ありがとうございました。
0101デフォルトの名無しさん
2009/02/19(木) 00:55:39>>99
0102デフォルトの名無しさん
2009/02/19(木) 00:57:080103デフォルトの名無しさん
2009/02/21(土) 19:23:35製品版VCが入ってないと無いんじゃね
Windows SDKのサンプルからコピってくればいいと思うが
0104デフォルトの名無しさん
2009/02/21(土) 22:46:410105デフォルトの名無しさん
2009/02/22(日) 02:46:490106デフォルトの名無しさん
2009/02/23(月) 07:21:35>cvConDensInitSampleSetのupperとlowerで画像全体を指定していますが、
>特定の初期位置がわかっているものを追いかける場合は
>ここでその位置を与えてやればよいのでしょうか。
理論的には、その初期位置の確率を 1.0 、それ以外を 0.0 にすればいいわけで、
うん、それで実現できるんじゃないですかね。
>また、対象が複数ある場合はそれぞれのCvConDensationを用意するのでしょうか。
CONDENSATION は一応、トラックするオブジェクトの動き分布がガウシアンじゃなくても、
つまり、例えば複数個の Gaussian の重ね合わせとかだったとしてもうまくトラックできる、
というのが Kalman Filter に対してのウリだから、
1つの CONDENSATION で複数個のオブジェクトをトラックできるはずなんだけど、
実際にやってみると、あんまりうまくいかないんだよねぇ。
それぞれに対して1つ用意するほうがいいみたい。
>二つの位置が重なったとき、両方のパーティクルが片方についていかないための工夫があれば教えてください。
どっかで読んだ気もしたけれど、あまり「すごい工夫だな!」とは思わなくて覚えてないや。すまそ。
http://opencv.jp/sample/estimators.html#condensation
しかし、この例あまりよくないよね。
トラック状態が x,y だけの width とかのない点単位でのトラックだし、
そもそも表示が likelihood を反映せずに、全部の particle 表示しているだけだから、
なにやってんだろう、ってかんじに見えてしまう。
せめて、likelihood が一定以上なら表示、とかにしてくれないと。
というか、ボールらしさ、を表現するようにして、x,y,radius の状態をもつようにして、
最後の表示は mean を表示するとか、likelihood が max の particle を表示するように
するとかしてほしかった。
0107デフォルトの名無しさん
2009/02/23(月) 07:37:13>小さい画像をcvLoadImageしてから大きい画像と同じ大きさに拡大したところ1位になりましたが、
>大きい画像を小さい画像にして比較するとまたマッチ度は10位前後になってしまいます。
なんでだろうね。変なの。詳細考察きぼんぬ。
>>50
OpenCV にゼロクロス検出関数あったっけ?ないか。
自分で実装しないといけないのか。めんどうくさいね。
どこかに普通の C 実装はありそうだけど。
>>53
Learning OpenCV けっこう良かった。
理論もかいつまんで説明してあって、このかいつまみを読むだけでもなかなか。
ちなみにどっかにうぷされ(げふんげふん
0108デフォルトの名無しさん
2009/02/24(火) 08:05:56あとOpenSURFと比べたことのあるひといる?
0109デフォルトの名無しさん
2009/02/26(木) 08:22:13自動生成の後,多少手でいじってるの?
0110デフォルトの名無しさん
2009/02/26(木) 19:06:270111デフォルトの名無しさん
2009/02/28(土) 11:38:47いろいろ無駄な物作って慣れたら画像処理専門になりたいんだけど
0112デフォルトの名無しさん
2009/02/28(土) 11:50:540113デフォルトの名無しさん
2009/02/28(土) 15:38:12トンクス
0114デフォルトの名無しさん
2009/03/01(日) 05:56:40コンソールアプリケーションの方はうまく動いて、
フォームアプリケーションはなぜかエラーが起きるんだ・・・
環境はVC++2008
エラーの内容は
The error looks like this: Unspecified error (The node does not represent a user object (unknown type?))
in function cvRead, C:\Program Files\OpenCV\cxcore\src\cxpersistence.cpp (5040)
どうも
CvHaarClassifierCascade* cascade = (CvHaarClassifierCascade*)cvLoad( "haarcascade_frontalface_alt.xml" );
のところが原因らしい
なぜかフォームアプリケーションだけできないなんて・・・
誰か解決策を教えてくださいm(_ _)m
0115デフォルトの名無しさん
2009/03/01(日) 14:00:33haarcascade_frontalface_alt.xmlはある?
パスはあってる?
0116デフォルトの名無しさん
2009/03/01(日) 17:07:37あっています
上で書いたようにコンソールの方は正常に動いてくれるので・・・
http://opencv.willowgarage.com/wiki/FaceDetection
ここに書いてあるとおりopenCVのバグなんでしょうか?
0117デフォルトの名無しさん
2009/03/01(日) 17:15:54cvLoadHaarClassifierCascade使ってみたら?
0118117
2009/03/01(日) 17:20:030119デフォルトの名無しさん
2009/03/01(日) 18:12:310120デフォルトの名無しさん
2009/03/01(日) 18:53:20>>117を参考にして、次のように修正したら直りました
const char* name;
name = "haarcascade_frontalface_default.xml";
CvHaarClassifierCascade* cascade = 0;
cascade = cvLoadHaarClassifierCascade(name, cvSize(1,1));
ありがとうございました
0121デフォルトの名無しさん
2009/03/01(日) 19:18:320122デフォルトの名無しさん
2009/03/01(日) 19:29:080123デフォルトの名無しさん
2009/03/02(月) 16:27:24ウィンドウの最小サイズは、XMLに書いてある。
エラーの原因はC++にしててヘッダincludeしてなくて
デフォルト引数かABIが変になってるなど。
0124デフォルトの名無しさん
2009/03/02(月) 19:43:37結局>>120のソースだとcvLoadを呼ぶだけだからcvSizeは関係ないはず
第2引数はどんな値でもたぶん変わらない
0125デフォルトの名無しさん
2009/03/07(土) 07:52:09openCVのSVMって3以上の多クラス分類問題にも対応していますが、
ここで使用されてる手法って何ですか?
リファレンスで紹介されているhttp://citeseer.ist.psu.edu/burges98tutorial.htmlには
このことについて書いてないと思うのですけど(自分の見落としかもしれませんが
どなたか教えてください
0126デフォルトの名無しさん
2009/03/07(土) 08:55:36すいません事故解決しました
openCVのSVCはlibsvmが元になっていて、libsvmのリファレンスページに書いてありました
0127デフォルトの名無しさん
2009/03/12(木) 16:36:180128デフォルトの名無しさん
2009/03/13(金) 09:03:250129デフォルトの名無しさん
2009/03/15(日) 01:02:39OpenCV on the Cell
http://cell.fixstars.com/opencv/index.php/OpenCV_on_the_Cell
0130glrkXGLykzumzP
2009/04/14(火) 07:14:480131デフォルトの名無しさん
2009/04/16(木) 18:02:48pythonから使いにくいんだけど
0132デフォルトの名無しさん
2009/04/20(月) 20:18:24ピクセル値の参照って、どうやって行うのでしょうか?
c,c++だと、img->imageData[img->stepWidth * y + x];
みたいなことができたのですが、、、
どなたか教えていただけないでしょうか。
0133デフォルトの名無しさん
2009/04/21(火) 02:47:00x,yではなく行,列なので注意。
SVNのC++化は極端だよな。各種Wrapperオワタな雰囲気。
0134デフォルトの名無しさん
2009/04/21(火) 15:52:06おお。ありがとうございます。
大変助かりました!
0135デフォルトの名無しさん
2009/04/22(水) 15:46:53python使うようになったらc++は使わなくなったなあ
opencvはcだからいいのであってc++になったら他にもいいのは結構あるんだな
insight tool kitとかさ
0136デフォルトの名無しさん
2009/04/27(月) 16:59:30今は、gluiを使ってやってるんだけど、それ以外ではglui使ってないので
なるべくgluiは外しておきたいんですよね。。
0137デフォルトの名無しさん
2009/04/27(月) 19:09:420138デフォルトの名無しさん
2009/04/29(水) 02:26:310139デフォルトの名無しさん
2009/05/09(土) 20:51:19cvShowImageで表示ができません
IplImageのimageDataを見ると、
文字化けしたような値が入っているので
ロードに失敗しているような感じなんですが…
解決法知っていれば、どなたか教えていただけないでしょうか?
画像ビューワーでは見れてます。
---------コード----------
IplImage *originalImage = cvLoadImage( "aaa.jpg", CV_LOAD_IMAGE_ANYDEPTH || CV_LOAD_IMAGE_ANYCOLOR);
if( originalImage == NULL ){
puts("読み込み失敗");
return 1;
}
cvShowImage( windowNameOriginal, originalImage );
0140デフォルトの名無しさん
2009/05/09(土) 20:53:57cvNamedWindowはちゃんとしてんの?
0141デフォルトの名無しさん
2009/05/09(土) 21:03:26してます
全体は
int main(array<System::String ^> ^args)
{
char windowNameOriginal[] = "Original";
cvNamedWindow( windowNameOriginal, CV_WINDOW_AUTOSIZE );
IplImage *originalImage = cvLoadImage( "aaa.jpg", CV_LOAD_IMAGE_ANYDEPTH || CV_LOAD_IMAGE_ANYCOLOR);
if( originalImage == NULL ){
puts("読み込み失敗");
return 1;
}
cvShowImage( windowNameOriginal, originalImage );
getchar();
return 0;
}
な感じです。
http://oshiete1.goo.ne.jp/qa4561803.html?ans_count_asc=20
の人と似た現象なので、VCの設定問題かもしれないです。
0142139
2009/05/09(土) 21:38:32cvWaitKey(0);
に変えたら解決
0143デフォルトの名無しさん
2009/05/10(日) 18:45:31画角が100°程度でOPENCVで使いやすいカメラってありませんか?
0144デフォルトの名無しさん
2009/05/13(水) 19:27:10一般的なUSBのやつだと75度くらいまでしか見当たらないなぁ。
0145デフォルトの名無しさん
2009/05/17(日) 19:51:12引き継いだカスタムの
haarcascade_frontalface_alt3.xmlを作成する
というのは簡単でしょうか
0146デフォルトの名無しさん
2009/05/18(月) 02:10:460147デフォルトの名無しさん
2009/05/18(月) 08:55:12haarcascade_frontalface_alt2.xmlの内容をフォルダ形式(txt形式)に直して、haartrainingの-dataにそのフォルダを渡せば続きのステージから学習はできるはず。
0148デフォルトの名無しさん
2009/05/18(月) 21:33:08ですよね・・・レスどもでした。
0149デフォルトの名無しさん
2009/05/21(木) 23:14:31値段は5万を超えるけど、アルゴが扱っているImageing source社の
産業用USBカメラ+CマウントレンズならOPENCVでも使えるし
画角100度以上が選べるよ。
0150デフォルトの名無しさん
2009/05/21(木) 23:34:05たとえばVGAサイズで以下のような内部パラメータのとき
320 0 340
A=0 320 250
0 0 1
補正前の画像中心(340, 250)が補正後(320, 240)に来るはずだよね?
なぜかさらにずれて(360, 260)になる。
試しに内部パラメータの画像中心を(300, 230)に設定すると補正後の中心は(320, 240)になる。
なんで????
0151デフォルトの名無しさん
2009/05/22(金) 00:23:21価格がぶっ飛んでますね・・・
金銭的に買えなそうです・・・でも情報ありがとうございました!
0152デフォルトの名無しさん
2009/05/22(金) 01:20:04自分で作っちゃったけど効率が悪い気がする
0153デフォルトの名無しさん
2009/05/22(金) 18:16:04主にトラックバーの表示なんですが
0154デフォルトの名無しさん
2009/05/23(土) 13:27:36もし歪み除去してたら同じ現象が起こるかどうか教えてもらいたいんですけど
0155デフォルトの名無しさん
2009/05/23(土) 17:40:09コーデックの設定画面出さずに、しかも読み込めないaviっぽいファイル(真空波動研でエラー)を出すようになってしまった。
コマンドプロンプトの出力見ると、勝手にffmpegを使って出力してるみたい。
どうもffdshowを入れてから挙動が変わったっぽいけど、ffdshowをアンインストールしても何かが残ってるのか、元に戻らない…
こういう時って、OSのクリーンインストールとhighguiのリビルド以外でどうやったらVFW使うように戻せるか情報ってある?
0156デフォルトの名無しさん
2009/05/24(日) 04:04:08ffmpegも更新が速いから次のバージョンではエラー無くなってるはず。
わざわざVFWなんて古いのに戻さなくてもいいんじゃない?
AVI保存のエラーはTMPGEncとかで非圧縮AVIに書き出しなおせば直ると思う。
0157デフォルトの名無しさん
2009/05/24(日) 08:25:38つ「cvAdd」
0158デフォルトの名無しさん
2009/05/24(日) 08:31:26画像が上下反転してるとかじゃない?要所要所で画像出力してみれば。
0159デフォルトの名無しさん
2009/05/24(日) 10:59:35画像をLoadImageした直後にUndistort2してるだけだから反転してないのは確認済みです
0160デフォルトの名無しさん
2009/05/24(日) 12:42:32ソース読めば分かるが、前バージョンからundistort2の内部が変更されたからねー
特に主点のあたりが
0161デフォルトの名無しさん
2009/05/27(水) 19:19:04OpenCVのSobelフィルタのアルゴリズムがよくわかりません。
(一般的なSobelフィルタのアルゴリズムがわからないのではありません。)
どなたか解説できる方はいらっしゃいませんでしょうか?
0162155
2009/05/28(木) 01:23:02ffmpegでも実行時にビットレートやエンコードオプションの設定ができればいいんですけど、
cvCreateVideoWriterを使う限りはVFWでしか無理っすよね…
結局cvffmpeg110.dllをリネームして無理矢理VFWを使うようにしたけど、
今度はcvCreateFileCaptureあたりが動かなくなりそうだ…
0163デフォルトの名無しさん
2009/06/03(水) 17:21:20どこがどう分からないのかが分からない。ビット演算とかでやってるとか?
0164デフォルトの名無しさん
2009/06/05(金) 13:09:270165デフォルトの名無しさん
2009/06/05(金) 17:09:25出来る。
画像処理とパターン認識入門って本が役立つと思う
0166デフォルトの名無しさん
2009/06/06(土) 03:00:36テンプレートマッチングとかできるの
あれ
0167デフォルトの名無しさん
2009/06/06(土) 06:22:430168167
2009/06/06(土) 06:25:39「あれ」ってなんのこと?OpenCV?
>>164
手書きの文字認識とかなら、テンプレートマッチングじゃなくて、
OpenCVのHaar-Like学習で手書き文字を学習させるといいかも。
0169デフォルトの名無しさん
2009/06/06(土) 09:26:17ありがとうございます。本屋で見てみます。
>>168
Haar-Like学習ってのは顔の検出アルゴリズムだけじゃなくて文字もイケるんでしょうか。
取りあえずやってみたいと思います。
0170デフォルトの名無しさん
2009/06/06(土) 11:16:240171デフォルトの名無しさん
2009/06/06(土) 12:18:250172デフォルトの名無しさん
2009/06/06(土) 15:57:330173デフォルトの名無しさん
2009/06/06(土) 22:48:13けっこうググったけど、あまりいい情報見つからず。
0174173
2009/06/06(土) 22:54:37ここでいう認証は登録してある、写真をもとに同一人物であるかどうか
という意味での顔認証です。
見つけるという意味ではないです。
0175デフォルトの名無しさん
2009/06/07(日) 00:17:32OpenCVに何を期待しているの?
顔認証したいならかなりの部分を自分で実装しないといけないんじゃないかと思うよ
ttp://www.face-rec.org/
このサイトに資料が充実してるよ
0176デフォルトの名無しさん
2009/06/07(日) 01:47:20ライブラリがそろってるわけでは無いのね
0177デフォルトの名無しさん
2009/06/07(日) 02:42:16一行目に
あ
そして全てage
0178デフォルトの名無しさん
2009/06/07(日) 05:29:57OpenCVでやりたいなら、認識させたい顔をHaarLike学習させて、その顔ごとに
特徴ファイルを分ければ顔『認識』ができそうだな。
0179デフォルトの名無しさん
2009/06/07(日) 05:41:120180デフォルトの名無しさん
2009/06/07(日) 12:37:53OpenCVは画像処理/認識のライブラリであって
顔認識のライブラリじゃねーよ
0181デフォルトの名無しさん
2009/06/07(日) 18:51:20Ver1.1で追加?されるMakeScanlinesがうまく動きません。
1つ目の引数のCvMatrix3の型で引っかかっているようなのです。
CvMatrix3でググってみましたがヒットしませんでした。
F行列はCvMat型で、キャストしてみましたがうまくいかず・・・
動かした経験のある方、助言していただけると嬉しいです。
0182181
2009/06/07(日) 19:06:17純粋にキャストミスでしたorz スレ汚しすみません;;
0183デフォルトの名無しさん
2009/06/07(日) 19:11:54顔認識は画像認識だよね。
0184デフォルトの名無しさん
2009/06/08(月) 00:10:510185デフォルトの名無しさん
2009/06/08(月) 00:24:150186デフォルトの名無しさん
2009/06/08(月) 01:51:30高度なのはダメといわれればそれまでだけど
0187デフォルトの名無しさん
2009/06/08(月) 12:48:41顔認識アルゴリズムを自前で実装するもよし、内蔵のHaarLikeを使うもよし。
>>179は自分で実装もチューニングもやったのか?
0188デフォルトの名無しさん
2009/06/08(月) 14:31:220189デフォルトの名無しさん
2009/06/08(月) 15:06:08ffdshowを入れればどんな動画も再生できるようになるんだな
この一番上のやつ
http://sourceforge.net/project/showfiles.php?group_id=173941
0190デフォルトの名無しさん
2009/06/08(月) 15:07:09どの段階で止まるかによる.
たとえば,AVI読み込み失敗ならコーデック不足.
0191デフォルトの名無しさん
2009/06/08(月) 15:23:580192デフォルトの名無しさん
2009/06/08(月) 15:44:14だけでは同一人物だとは限定できないよね
プログラムの基本だよ
0193デフォルトの名無しさん
2009/06/08(月) 16:16:44顔認識でも双子とかそっくりサンがでてきたら駄目でしょうね。
DNA鑑定だって100%はありえないですからね。
0194デフォルトの名無しさん
2009/06/08(月) 16:18:58関数1つではできないのでしょうか?
1 2 3
4 5 6
というテキストがあったら
cvCreateMat(2,3)
と各入れる要素の読み込みまでしたいのです
0195デフォルトの名無しさん
2009/06/08(月) 16:44:15ありがとう。ffdshowインストールしたら動画再生されるようになった。取りあえずコーデックを全部いれといた。
次はUSBカメラを買ってきて再生してみる。お勧めのUSBカメラあったら教えてくれ。
0196デフォルトの名無しさん
2009/06/08(月) 17:25:29やっぱりいいや
これにするわ
http://www.amazon.co.jp/dp/B0001ZWN7M
0197sage
2009/06/08(月) 18:41:32cvStereoCaribrateを使いたいのですが
引数の設定に悩んでいます
第4引数まで(以下リファレンスよりコピー)
object_points
オブジェクト点の結合行列,3xN あるいは Nx3.ここで, N は全てのビューにおける点数の合計.
image_points1
1 番目のカメラのビューにおける画像間対応点の結合行列, 2xN あるいは Nx2.ここで,N は全てのビューにおける点数の合計.
image_points2
2 番目のカメラのビューにおける画像間対応点の結合行列, 2xN あるいは Nx2.ここで,N は全てのビューにおける点数の合計.
point_counts
各ビューに含まれる点数のベクトル,1xM あるいは Mx1. ここで,M はビューの数.
結合行列という単語で引っかかっているのですが、
それぞれどういった内容の配列を与えればいいか教えてください
0198デフォルトの名無しさん
2009/06/08(月) 19:56:480199デフォルトの名無しさん
2009/06/08(月) 20:54:16Matlabなら魚眼対応ツールあるけど
0200デフォルトの名無しさん
2009/06/08(月) 22:50:150201デフォルトの名無しさん
2009/06/08(月) 23:00:050202デフォルトの名無しさん
2009/06/08(月) 23:12:20USBカメラの中で最高の性能だよ。
人気で品薄になってるから見かけたら即買ったほうがいい
0204デフォルトの名無しさん
2009/06/09(火) 04:51:55いったんラフに極座標変換とかして平面にしてからキャリブレーションすればいいんじゃないか?
0205デフォルトの名無しさん
2009/06/09(火) 22:36:54OpenCVはピンホールカメラモデルを仮定してるから,これに従う投影像
ならいい.ということで全方位カメラは無理.
魚眼レンズは画像中心付近はピンホールカメラモデルに近似できない
こともないからなんとかなるかも.中心以外はレンズ歪みを補正しきれ
ないと思う.
0206デフォルトの名無しさん
2009/06/10(水) 12:32:560207198
2009/06/10(水) 15:49:410208デフォルトの名無しさん
2009/06/11(木) 22:25:28OpenCVって16ビットの画像も扱えるんだから、CSVなんか使わないで
画像自体をCSVの代わりに使ったら?
CSVだと横の要素の制限(256?)があるし。
0209デフォルトの名無しさん
2009/06/11(木) 22:48:42pythonとか他の言語でも使うこと考えるとcsvが一番便利なんです
0210208
2009/06/11(木) 23:53:09なるほど。自前で実装するといいよ。
数字だけでいいんだったらfgetsで一行づつ読み込んで
「,」で分けて配列に入れていけばいいじゃん。
0211デフォルトの名無しさん
2009/06/12(金) 00:28:10嘘はやめれ。csvに列数の制限など無い
Excelの制限(65536x256)と勘違いしていないか
0212デフォルトの名無しさん
2009/06/12(金) 09:05:320213デフォルトの名無しさん
2009/06/12(金) 11:11:45出すなんてことはできますか?メディアプレーヤーの視覚効果みたいなものです。
0214デフォルトの名無しさん
2009/06/12(金) 11:13:55Excelに256カラムの制限なんてない。そりゃぁ、かつてはあったかも知らんが。
0215デフォルトの名無しさん
2009/06/12(金) 11:26:02http://office.microsoft.com/ja-jp/excel/HP100738491041.aspx?pid=CH101030621041
0216デフォルトの名無しさん
2009/06/12(金) 11:27:37できる。
0217デフォルトの名無しさん
2009/06/12(金) 13:49:35できまっせ!
0218213
2009/06/12(金) 14:42:16できるかできないかを聞いてるんじゃなくて。
0219デフォルトの名無しさん
2009/06/12(金) 15:05:36ちなみにメディアプレーヤーの視覚効果の入力は動「画」ではないんじゃね?
0220デフォルトの名無しさん
2009/06/12(金) 15:20:23其の壱 動画を読み込む。
其の弐 動画の強弱を求める。
其の参 強弱に合わせて映像をアーティスティックに変化させる。
以上
0221213
2009/06/12(金) 16:09:22ところで、動画が再生できないんだけど。。。 どうすればいい???
0222デフォルトの名無しさん
2009/06/12(金) 16:10:210223213
2009/06/12(金) 16:13:330224213
2009/06/12(金) 16:33:26Visual C++ Express 2008で作ってます。
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture* src;
IplImage* frame;
cvNamedWindow("動画");
src = cvCaptureFromFile("動画.avi");
while(1){
frame = cvQueryFrame(src);
cvShowImage("動画", frame);
cvWaitKey(33);
}
cvDestroyWindow("動画");
cvReleaseCapture(&src);
return 0;
}
0225デフォルトの名無しさん
2009/06/12(金) 16:40:58これ無限ループしないか?
0226213
2009/06/12(金) 16:57:24ffdshowってのでコーデックを入れればよかったんだな。
動画は再生できた。ただ>>225がいうように無限ループになる。
あとは動画の強弱の取り出し方だが、何かよい方法を提案してくれ。
0227デフォルトの名無しさん
2009/06/12(金) 17:07:26強弱ってのが何の強弱を意味するのかわからんが、画素値の平均とか標準偏差ならcvAvgとかcvAvgSdvとかでいいんじゃない?
0228デフォルトの名無しさん
2009/06/12(金) 17:34:110229デフォルトの名無しさん
2009/06/12(金) 17:35:580230213
2009/06/12(金) 17:43:01平均値を出してみた。いい感じで動画の明るさに応じて変化しているようだ。
で?っていう。
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture* src;
IplImage* frame;
cvNamedWindow("動画");
src = cvCaptureFromFile("動画.avi");
while(1){
frame = cvQueryFrame(src);
printf("平均値は%fだ。\n", cvAvg(frame));
cvShowImage("動画", frame);
cvWaitKey(33);
}
cvDestroyWindow("動画");
cvReleaseCapture(&src);
return 0;
}
0231デフォルトの名無しさん
2009/06/12(金) 17:45:00おお。いいね。
0232213
2009/06/12(金) 17:54:150233デフォルトの名無しさん
2009/06/12(金) 20:38:55行動力に好感
0234デフォルトの名無しさん
2009/06/12(金) 21:16:51USBウェブカメラで撮影した映像でいろいろやってるみたい。
http://japan.cnet.com/news/tech/story/0,2000056025,20394905,00.htm
0235デフォルトの名無しさん
2009/06/12(金) 23:54:080236デフォルトの名無しさん
2009/06/14(日) 21:41:59実行したりしたんですけど、整数型しか使わないサンプルは動くんですが
小数型を使うプログラムは動かないみたいです。同じような症状が出た人
いますか?解決法があれば教えてください。
0237名無し募集中。。。
2009/06/14(日) 23:22:520238236
2009/06/15(月) 00:52:21はい、デスクトップPCでは動きます。ちなみに動かないのはミニノートPCです。
多分、グラフィックボードが対応してないとかなんでしょうかね?
0239名無し募集中。。。
2009/06/15(月) 01:04:41少数型(浮動小数点?)の演算にグラフィックボードが依存するってgpgpuの事かね
環境や症状を人にわかるように説明出来なければヒントすら得られないと思うぜ
0240デフォルトの名無しさん
2009/06/15(月) 07:13:510241236
2009/06/15(月) 12:19:36普通、サンプルプログラム(例えばDFTサンプルのdft.exe)なんか普通に実行できるはずなのに、
できないんです(デスクトップでは普通に実行できる)。
原因となっている関数を特定する為に、ソースコードを1つづつ削ったりしながら
ビルド&実行してみると、どうやら小数型の関数で引っかかっているみたいなんです。
最悪、OSの再インストールからやってみるべきかとも思っています。
0242デフォルトの名無しさん
2009/06/15(月) 12:43:48説明が下手なんだから、ソースを晒せよ。
0243236
2009/06/15(月) 13:04:55準備してるところでエラー発生。
#include <cv.h>
#include <highgui.h>
int main (int argc, char **argv)
{
IplImage *src_img, *dst_img, *tmp_img;
// 画像の読み込み
if (argc != 2 || (src_img = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE)) == 0)
return -1;
tmp_img = cvCreateImage (cvGetSize (src_img), IPL_DEPTH_16S, 1);
dst_img = cvCreateImage (cvGetSize (src_img), IPL_DEPTH_8U, 1);
cvSobel (src_img, tmp_img, 1, 0); // Sobelフィルタ
cvNamedWindow ("Sobel", CV_WINDOW_AUTOSIZE);
cvShowImage ("Sobel", dst_img);
cvWaitKey (0);
cvDestroyWindow ("Sobel");
cvReleaseImage (&src_img); cvReleaseImage (&dst_img); cvReleaseImage (&tmp_img);
return 0;
}
0244236
2009/06/15(月) 13:08:41下のソースのcvCreateImageで小数型(IPL_DEPTH_16S)のIplImage変数を
準備してるところでエラー発生。
#include <cv.h>
#include <highgui.h>
int main (int argc, char **argv)
{
IplImage *src_img, *dst_img;
// 画像の読み込み
if (argc != 2 || (src_img = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE)) == 0)
return -1;
dst_img = cvCreateImage (cvGetSize (src_img), IPL_DEPTH_16S, 1);
cvSobel (src_img, dst_img, 1, 0); // Sobelフィルタ
cvNamedWindow ("Sobel", CV_WINDOW_AUTOSIZE);
cvShowImage ("Sobel", dst_img);
cvWaitKey (0);
cvDestroyWindow ("Sobel");
cvReleaseImage (&src_img); cvReleaseImage (&dst_img);
return 0;
}
0245デフォルトの名無しさん
2009/06/15(月) 14:05:27なんだよ、準備って。俺語なんか作ってんじゃねぇって。
0246デフォルトの名無しさん
2009/06/15(月) 14:44:420247デフォルトの名無しさん
2009/06/15(月) 14:55:59つたわりゃいいだろ。おまえならどう説明するんだい?
0248デフォルトの名無しさん
2009/06/15(月) 14:59:330249デフォルトの名無しさん
2009/06/15(月) 15:02:440250デフォルトの名無しさん
2009/06/15(月) 15:41:26つたわんないだろ。IPL_DEPTH_16Sは符号有り 16 ビット「整数」
0251名無し募集中。。。
2009/06/15(月) 15:42:130252236
2009/06/15(月) 16:14:22間違い、IPL_DEPTH_16Sじゃなく単精度浮動小数点数IPL_DEPTH_32Fを
使ったときにエラーが出るんだ。さっきのソースは適当に組んだもんで
実際には実行可能。
兎に角、ソースが悪いのではなくOpenCVとミニノートの相性が悪いみたい。
エラーメッセージは今そのPCが手元に無いので貼れず。
うまく動けばモバイルでOpenCVを使っていろいろできそう。
さあ、どうしたらよいのでしょうか。
0253デフォルトの名無しさん
2009/06/15(月) 16:15:400254デフォルトの名無しさん
2009/06/15(月) 16:22:100255デフォルトの名無しさん
2009/06/15(月) 17:08:10死ね。悪いことは言わん。それが身のためだ。
0256デフォルトの名無しさん
2009/06/15(月) 17:14:030257デフォルトの名無しさん
2009/06/15(月) 17:24:040258デフォルトの名無しさん
2009/06/15(月) 18:36:530259デフォルトの名無しさん
2009/06/15(月) 21:27:58テンプレートマッチングのテンプレートを回転させる方法もあるけどめちゃくちゃ遅い。
Haar-Like特徴分類の機械学習でやれば、実時間で検出可能。
0260デフォルトの名無しさん
2009/06/15(月) 22:10:39Haar-Like特徴分類手法はかなり学習が必要と
本に書いていました。
マスター画像1回の取り込みで、回転パターンマッチングが
やりたいのですが・・・。
特徴点自動抽出のGoodFeaturesToTrack()とかでできるのかな??
0261デフォルトの名無しさん
2009/06/15(月) 22:45:57こういうのはどう?
1、GoodFeaturesToTrack()で、探し先画像と探す画像の特徴点を自動抽出しとく。
2、探す画像の特徴点の分布と同じ物を、探し先の特徴点の分布から探す。
こうすれば、画像の画素全体を走査しなくていいから早いかもよ!
0262デフォルトの名無しさん
2009/06/15(月) 22:51:530263デフォルトの名無しさん
2009/06/15(月) 23:03:390264デフォルトの名無しさん
2009/06/15(月) 23:12:320265デフォルトの名無しさん
2009/06/15(月) 23:25:59ありがとうございます、ソフト作ってやってみます。
>>262
「登録は一発で」という要望が多いもので・・・。
>>263
おおお、ソフト作ってみます。
>>264
エッジ画像で高速回転パターンマッチングする機能を
画像処理機でよく見かけますが、探しているのは
まさににその手の機能です・・・。
0266名無し募集中。。。
2009/06/16(火) 09:13:53「登録はイッパツ」が欲しければ、ライブラリを買うしかないんじゃないのかな
0267デフォルトの名無しさん
2009/06/16(火) 11:46:370268デフォルトの名無しさん
2009/06/16(火) 11:55:06言いだしっぺの法則
0269デフォルトの名無しさん
2009/06/16(火) 12:38:340270デフォルトの名無しさん
2009/06/16(火) 14:12:32HaarLike学習は学習用の画像(検出画像が含まれない非正解画像)が沢山必要
だから「一発」じゃ無理だろ。>>260は「マスタ画像の取り込み1回」で
検出先画像から検出させたいっつってんだから。
ただHaarLikeは「任意の」背景も含めて学習させるからロバストではあるわな。
0271265
2009/06/16(火) 22:34:48cvExtractSURF()を実行するのに640x480x8bitのモノクロ画像で
Core2 Quad Q6600 2.4GHz, mem 2GBで
350msecもかかるんですね・・・。
これでは、いまいち実用的でないです・・・。
テンプレートは150x150pixelくらいとして、20〜50msecで
回転パターンマッチングはできないものかなぁ・・・。
0272デフォルトの名無しさん
2009/06/16(火) 23:21:47どういう背景中のどういう物体を検出しようとしてんの?
0273271
2009/06/17(水) 00:12:49印刷図柄中のある部分を切り出したいんです。
印刷図柄とは、スーパーの広告のチラシの様な少々派手目の特徴ある図柄です。
この図柄はどっちを向いているか(回転方向に)わからないのですが、
これをまっすぐ(チラシが読める向き)にして、
その中の特定のエリアを切り出したいのですが・・・。
こういう要求は、画像処理の前処理として非常に多いんです。
0274デフォルトの名無しさん
2009/06/17(水) 01:22:35もしくは GPUSIFT か http://mi.eng.cam.ac.uk/~gr281/docs/WagnerIsmar08NFT.pdf あたりを自前で実装するかだな。
0275デフォルトの名無しさん
2009/06/17(水) 01:51:49すれば、テンプレートは垂直1つでいいんじゃないか?
0276デフォルトの名無しさん
2009/06/17(水) 10:23:29最初の「OpenCVで」という条件を外せば楽勝だと思うのだが
外すのは無理なのか
0277デフォルトの名無しさん
2009/06/17(水) 17:39:37回転サンプルプログラムにfor文をどう組み込めばできますか.教えてください.
0278デフォルトの名無しさん
2009/06/17(水) 18:43:02#include <highgui.h>
#include <stdio.h>
int main(int argc, char **argv){
IplImage *img = 0, *img2 = 0;
CvMat* rotationMat = 0;
bool isStop = false;
int waitKey;
int rotate = 0;
img = cvLoadImage(argv[1], CV_LOAD_IMAGE_COLOR);
img2 = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);
cvNamedWindow("Image", CV_WINDOW_AUTOSIZE);
while (1){
if (!isStop){
rotationMat = cvCreateMat(2, 3, CV_32FC1);
cv2DRotationMatrix(cvPoint2D32f(img->height / 2, img->width / 2), rotate, 1, rotationMat);
cvWarpAffine(img, img2, rotationMat);
rotate += 20;
if(rotate == 360){
rotate = 0;
}
cvShowImage("Image", img2);
}
waitKey = cvWaitKey(33);
if (waitKey == 'q'){
break;
}
}
cvDestroyWindow("Image");
cvReleaseImage(&img);
return 0;
}
0279デフォルトの名無しさん
2009/06/17(水) 18:44:34でもだいたいこんな感じじゃない?
0280デフォルトの名無しさん
2009/06/17(水) 18:50:28どうもありがとうございます.
画像の読み込みは何行目なんですか?
0281通りすがり
2009/06/17(水) 18:53:24ただ
rotationMat = cvCreateMat(2, 3, CV_32FC1);
はwhileの中じゃなくてwhileの上の方で最初に実行した方がいいな。
毎回実行する必要はないから。
0282通りすがり
2009/06/17(水) 18:55:27img = cvLoadImage(argv[1], CV_LOAD_IMAGE_COLOR);
もしかして、Visual C++のコンソールアプリとかで作ってる?
これは純粋なコンソールCコンパイラ用のコードだから。
0283デフォルトの名無しさん
2009/06/17(水) 18:59:19Visual C++です
Visual C++では形式がちがいますか?
初心者なもんですみません.
0284通りすがり
2009/06/17(水) 19:15:56#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")
int _tmain(int argc, _TCHAR* argv[])
{
IplImage *img = 0, *img2 = 0;
CvMat* rotationMat = 0;
bool isStop = false;
int waitKey, rotate = 0;
img = cvLoadImage("画像.jpg");
img2 = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);
cvNamedWindow("Image", CV_WINDOW_AUTOSIZE);
rotationMat = cvCreateMat(2, 3, CV_32FC1);
while (1){
cv2DRotationMatrix(cvPoint2D32f(img->height / 2, img->width / 2), rotate, 1, rotationMat);
cvWarpAffine(img, img2, rotationMat);
rotate += 20;
if(rotate == 360){ rotate = 0; }
cvShowImage("Image", img2);
waitKey = cvWaitKey(33);
if (waitKey == 'q') break;
}
cvDestroyWindow("Image");
cvReleaseImage(&img);
return 0;
}
0285デフォルトの名無しさん
2009/06/17(水) 20:15:30if (rotate >= 360) { rotate -= 360; }
もしくは
rotate = (rotate + 20 ) % 360;
にしたほうが、仕様変更で20が50になったときにやさしい
0286デフォルトの名無しさん
2009/06/17(水) 20:57:480287デフォルトの名無しさん
2009/06/17(水) 21:50:07画像処理スレも論文の話とか全然出ないし。しても盛り上がらないし。
0288デフォルトの名無しさん
2009/06/17(水) 21:57:530289デフォルトの名無しさん
2009/06/17(水) 22:12:40を参考にhaartraining.exeで学習させています。
その際、際限なくメモリを消費して最後は
でABENDしてしまいます。
Insufficient memory (Out of memory)
in function cvAlloc, .\cxalloc.cpp(111)
回避策があればご教授ください。
0290デフォルトの名無しさん
2009/06/17(水) 22:16:360291デフォルトの名無しさん
2009/06/17(水) 22:18:250292デフォルトの名無しさん
2009/06/17(水) 22:20:380293デフォルトの名無しさん
2009/06/17(水) 22:28:170294デフォルトの名無しさん
2009/06/17(水) 23:26:58そのときのコマンドラインは?
まさか、-w,-hに大きな値を指定したりしてないよな
0295デフォルトの名無しさん
2009/06/18(木) 00:58:30-w 40 -h 40で通りました。(まだ計算中ですが・・・)
0296デフォルトの名無しさん
2009/06/18(木) 14:15:060297デフォルトの名無しさん
2009/06/18(木) 14:29:00でもリモコンはつかわずにUSBカメラとかからの入力映像をもとに操作する。
0298デフォルトの名無しさん
2009/06/18(木) 15:42:24って質問する人はなんなんだ
作れるかどうかは自分次第
どんなライブラリを使おうと、結局は自分で実装しなけりゃいけないところがあるんだぜ
0299デフォルトの名無しさん
2009/06/18(木) 21:42:290300デフォルトの名無しさん
2009/06/19(金) 17:06:04double float int char
どの型になってても動くforループ(eachpixel)は
for (j = 1; j < m->cols; j++) {tmp=cvGetReal2D(m,i,j);
}
のように書くしかないのでしょうか?
処理が遅すぎで困っています
0301デフォルトの名無しさん
2009/06/19(金) 18:04:29ttp://opencv.jp/sample/basic_structures.html#access_pixels
0302デフォルトの名無しさん
2009/06/19(金) 18:06:39ucharなことが最初からわかってれば問題ないのですが
floatなどもくることがあるのです
0303デフォルトの名無しさん
2009/06/19(金) 18:26:58処理が遅いのをどうにかしたいならまず>>301だし。
cvGetReal2Dってのは常にdoubleを返すんでしょ?
0304デフォルトの名無しさん
2009/06/19(金) 18:31:50それなら、最初の30要素くらいをdoubleで読み込んで調べて、
全部正&ひとつも小数点以下がなければucharとか。
ちなみに、cvGetReal2DとかcvmGetとか使ってる限りはどう工夫してもかなり遅いよ。
やっぱポインタ直アクセスをしないと。
0305デフォルトの名無しさん
2009/06/19(金) 18:33:210306デフォルトの名無しさん
2009/06/20(土) 03:12:12そんなマクロあったらいいのに
0307デフォルトの名無しさん
2009/06/21(日) 20:42:10ちょっと見てみようと思って本屋見て回ったんだが、どこにもなかったんだ
0308デフォルトの名無しさん
2009/06/21(日) 21:42:44宣伝乙
目次を見る限り初学者向けっぽいの.
OpenCVの特長の利用方法が書いているから良さそう.
0309デフォルトの名無しさん
2009/06/22(月) 11:03:18WinXP SP3 + VS2005 + DirectShowでビデオキャプチャしてます。
while(1) {
....
int key = cvWaitKey(33);
printf("%d", key);
}
としたときにずっとkeyが-1だ、と返されてしまうんですが
こんな現象に出くわした方いらっしゃいませんか?
0310デフォルトの名無しさん
2009/06/22(月) 11:09:58手持ちのOpenCV1.1ソースで,otherlibs/highgui/window_w32.cpp に記述あり.1128行目から.
-1 は次のコード部分.
if( (delay > 0 && abs((int)(GetTickCount() - time0)) >= delay) || hg_windows == 0 )
return -1;
省略部分でウインドウ出していないなら.hg_windows == 0 に引っかかってる.
0311309
2009/06/22(月) 11:25:27ありがとうございます。
省略部分ではcvShowImageでウインドウを出しているので、
前半部分かと思いますが、この条件で引っかかる気がしないので困惑です。
0312デフォルトの名無しさん
2009/06/22(月) 12:40:29それよりも、何故に33ms?
0313309
2009/06/22(月) 13:44:58あ、いえ特に深い意味はありません。
最初は1だったのですが、ウエイト時間が短いのかもしれないということで
いろいろ試した名残です。
0314デフォルトの名無しさん
2009/06/22(月) 14:50:19キャリブレーション用のチェスボードシートをCAD上で描いて
レーザープリンタで出力させているのですが,
全体で1〜2mmほど寸法ずれがあります。
レーザープリンタでは,その特性上起こりうる誤差と聞いてますが
チェスボードシートの誤差はどの程度まで許容できるのでしょうか?
回答よろしくお願いします。
0315314
2009/06/22(月) 14:55:32上げてしまいスイマセン。
0316デフォルトの名無しさん
2009/06/22(月) 15:48:44特に意味が無いなら0の方が確実にkeyの値わかるからよくね?
0317デフォルトの名無しさん
2009/06/22(月) 17:38:11三次元計測をしている知り合いは出入りの印刷屋をいじめぬいて作るらしい。
定規で分かるような誤差があれば差し戻し。
0318314
2009/06/22(月) 18:26:48情報ありがとうございます。
やはり精度がいる計測には,精度の良いシートが必要なんですね。
シートやマスの大きさにもよるんでしょうけど
全体の精度が0.1mm以下ってことでしょうね。
0319デフォルトの名無しさん
2009/07/01(水) 21:37:45OpenCV1.0、VisualStudio2005の環境で
SVMに挑戦しようと思い、リファレンスにあるSVMのサンプルソースを
動かそうとしたところ、ml.hの75行目の CvVectors* next;
の箇所でerror C2061 :構文エラー:識別子'CvVectors'
が出てしまうのですが、プロジェクトやVisualStudio2005の設定に
問題があるのでしょうか・・・
Opencv.slnをリビルドしてみても、OpenCVをインストールし直した直後でも
同じエラーがでます。
cv.lib
cvaux.lib
cxcore.lib
highgui.lib
cvcam.lib
ml.lib
を一通りlibをリンカさせても出てくるのですが、
原因としてはどんなものが考えられるでしょうか?
0320デフォルトの名無しさん
2009/07/01(水) 21:43:190321デフォルトの名無しさん
2009/07/01(水) 22:17:20libSVMあたりを使ったほうがいいんじゃないかな
0322デフォルトの名無しさん
2009/07/03(金) 09:15:410323デフォルトの名無しさん
2009/07/03(金) 14:40:080324デフォルトの名無しさん
2009/07/03(金) 15:04:530325324
2009/07/03(金) 15:06:130326デフォルトの名無しさん
2009/07/03(金) 17:36:44画像回転とテンプレートマッチングを一つのプログラムにすることは可能でしょうか。
0327デフォルトの名無しさん
2009/07/03(金) 18:14:31例えば45度ずつ回転した8つの画像をテンプレートにして8回ループで
マッチングすればいい。
0328デフォルトの名無しさん
2009/07/03(金) 18:43:35何度ずつ回転するプログラムを作って
for文とかのループにテンプレートマッチングのプログラムを組み込むってことですか?
まだOPENCVをはじめて日が浅いもので。。
0329デフォルトの名無しさん
2009/07/03(金) 19:12:550330デフォルトの名無しさん
2009/07/03(金) 19:20:40IplImage* image[8];
for(i = 0; i < 8; i++){
image[i] = cvCreateImage(〜);
}
みたいにして8個分のテンプレート用の画像領域を作成して、
そこに回転したテンプレートを入れてく。
それでそれぞれのマッチング値を計算すればいいさ。
0331デフォルトの名無しさん
2009/07/03(金) 21:31:09//画像を生成する
(5つの宣言)
//BGRからグレースケールに変換
//グレースケールから2値に変換
//テンプレートマッチングを行う
プログラムをどのように入れたら上手くいきますか?
0332デフォルトの名無しさん
2009/07/03(金) 21:40:47そしたらそれをforで回せばいいだけじゃん。
0333デフォルトの名無しさん
2009/07/04(土) 15:54:34組み合わせ方
1、画像を宣言
2、画像を例えば20度ずつ回転しIplImageに入れる
3、各テンプレートについてテンプレートマッチング
0334デフォルトの名無しさん
2009/07/04(土) 20:37:57もうこうなったら、全部ソースを載せたらいいと思うYO!
0335デフォルトの名無しさん
2009/07/04(土) 20:45:3120度づつ回転させた18テンプレートを使用するとする。
#include <cv.h>
#include <highgui.h>
int
main (int argc, char **argv)
{
//各種宣言
//画像を生成する
IplImage* image[18];
//テンプレートの元画像を読み込む
for(i = 0; i < 18; i++){
image[i] = cvCreateImage(〜);
//テンプレートを20度回転
//テンプレートをimage[i]に入れる
}
//ソース画像の読み込み
//ソース画像をBGRからグレースケールに変換
//グレースケールから2値に変換
for(j = 0; j < 18; j++){
//テンプレートマッチング
cvMatchTemplate(src_img, image[j], dst_img, CV_TM_CCOEFF_NORMED);
//画像表示など
}
//終了処理
}
0336デフォルトの名無しさん
2009/07/05(日) 12:35:39ですが全体的に処理速度が遅い。。。
プログラム内部で途中経過を表示するため画像のコピーをいくつかとって
別ウィンドウに表示しているのが原因の一つかなと思っています。
それで、容量を減らすためたにHSVの3プレーンをHSだけの2プレーンにして
処理を行ったのですが、どうもcvSplitとcvMergeでの処理の方が
圧倒的に時間がかかっているようでHSVの3つを使うより処理速度が
遅くなってしまいました。
cvCvtColor(inputImage, hsvImage, CV_BGR2HSV);
cvSplit(hsvImage, hueImage, saturationImage, valueImage, NULL);
cvMerge(hueImage, saturationImage, NULL, NULL, hsImage);
もしかして、3プレーンから2プレーンだけを取り出す効率的な方法が
あったりするのでしょうか。
0337デフォルトの名無しさん
2009/07/05(日) 12:40:210338デフォルトの名無しさん
2009/07/05(日) 12:43:29あと、途中経過を複数ウィンドウで表示させるのは速度にかなり影響する。
0339336
2009/07/06(月) 02:16:44ありがとうございます。COIについて調べてみました。
http://opencv.jp/opencv-1.0.0/document/opencvref_cxcore_init.html
のsetImageCOIを見ますと、
OpenCV の関数の多くは COI をサポートしていないことに注意すること.
別々の画像/行列チャンネルを処理するには,(cvCopy や cvSplit によって)
別々の画像/行列へチャンネルをコピーし,それを処理してから,必要ならば
その結果を(cvCopy や cvCvtPlaneToPix によって)もう一度コピーし直して返す.
と書かれています。
まだ試していないのですが、「OpenCV の関数の多くは COI をサポートしていないことに注意すること.」
が気になるのと、336の処理は
cvSetImageCOI( hsvImg, 1 );
cvCopy(hsvImage, hueImage);
cvSetImageCOI( hsvImg, 2 );
cvCopy(hsvImage, saturationImage);
cvSetImageCOI( hsvImg, 0 ); // COIを解除
cvMerge(hueImage, saturationImage, NULL, NULL, hsImage);
という風に書きなおすことになるのでよいのかということが
気になります。
0340デフォルトの名無しさん
2009/07/06(月) 02:32:183チャンネルから1チャンネルにコピー。でもcvSplitより速くなるかは不明。
cvSplitとcvMergeで遅くなってるってほんと?
結局はそれらだって内部でCOI使ってコピーしてるとかじゃないのかな。
0341デフォルトの名無しさん
2009/07/07(火) 10:14:35Webカメラキャプチャするときに音声も録音できたらいいんですが
0342デフォルトの名無しさん
2009/07/07(火) 11:11:400343デフォルトの名無しさん
2009/07/07(火) 11:55:090344デフォルトの名無しさん
2009/07/07(火) 11:59:000345デフォルトの名無しさん
2009/07/07(火) 15:19:500346デフォルトの名無しさん
2009/07/07(火) 15:24:530347デフォルトの名無しさん
2009/07/07(火) 21:30:14http://wiki.livedoor.jp/mikk_ni3_92/d/OpenCV::%C6%B0%B2%E8%BA%C6%C0%B8
のプログラム使って拡張子avi(Motion JPEG)動画再生しようとすると
cvCaptureFromFileの値が毎回ぬるぽになるんですけど
拡張子変換しないでなんとか再生する方法はないのでしょうか?
0348デフォルトの名無しさん
2009/07/09(木) 06:37:250349デフォルトの名無しさん
2009/07/09(木) 22:05:580350デフォルトの名無しさん
2009/07/09(木) 22:16:230351デフォルトの名無しさん
2009/07/10(金) 01:08:350352デフォルトの名無しさん
2009/07/10(金) 02:19:370353デフォルトの名無しさん
2009/07/10(金) 13:03:300354デフォルトの名無しさん
2009/07/10(金) 17:03:030355デフォルトの名無しさん
2009/07/11(土) 00:48:20うちのpythonは2.5だったのに
OpenCV1.1pre1aを入れたらpython2.6用で使えずorz
OpenCV1.0を入れ直してうまくいったので快適
0356デフォルトの名無しさん
2009/07/11(土) 00:53:302.0ではそこら辺が充実してるといいな
0357デフォルトの名無しさん
2009/07/12(日) 03:11:00ちょっとでも傾いてると全然だめ
浅く帽子かぶっててもだめ
逆に心霊写真っぽい画像でも顔認識される
0358デフォルトの名無しさん
2009/07/12(日) 05:21:330359デフォルトの名無しさん
2009/07/13(月) 05:03:320360デフォルトの名無しさん
2009/07/13(月) 14:23:28ttp://osaka.yomiuri.co.jp/university/research/20090711-OYO8T00307.htm
0361デフォルトの名無しさん
2009/07/13(月) 16:19:45影ができないから簡単なのか
http://anime.udp.jp/face-detect/
0362デフォルトの名無しさん
2009/07/13(月) 16:24:59正しい顔と正しくない顔(グロテスクとか違和感とか)の判別って主観じゃないのかな
0363デフォルトの名無しさん
2009/07/13(月) 20:57:590364デフォルトの名無しさん
2009/07/14(火) 01:00:170365デフォルトの名無しさん
2009/07/14(火) 01:43:130366デフォルトの名無しさん
2009/07/15(水) 00:15:28ヒントをクリリン。
0367デフォルトの名無しさん
2009/07/15(水) 00:18:320368デフォルトの名無しさん
2009/07/15(水) 15:56:00画像をテンプレートにして、もう片方の画像中からテンプレートマッチングする。
検出された点の座標で2枚の画像をつなげればOK。
0369デフォルトの名無しさん
2009/07/15(水) 16:54:13合成すればもっと自然につなげる。
0370デフォルトの名無しさん
2009/07/16(木) 04:27:150371デフォルトの名無しさん
2009/07/16(木) 18:23:330372デフォルトの名無しさん
2009/07/21(火) 06:33:05今まで趣味でWeb関係のプログラムをやっていたいのですが、
今度仕事でとある専門領域の画像認識をすることになりました。
最近は、pythonを使っていたので
OpenCV1.0 + python 2.5で良いかなと思っていたのですが、
C++ほどのパフォーマンスは出ないと予想されるので、
どうしようか悩んでいます。
扱う画像で変わってくると思うので、
一概には言えないと思ういますが、
OpenCV+pythonでスピードが問題になった経験がおありの方はいるでしょうか?
0373デフォルトの名無しさん
2009/07/21(火) 23:15:14ピクセル単位でアクセスするような処理を書くと当然100倍以上遅い
0374デフォルトの名無しさん
2009/07/21(火) 23:40:23pythonを使うかどうか十分検討したいと思います。
ありがとうございました。
0375デフォルトの名無しさん
2009/07/23(木) 15:30:430376デフォルトの名無しさん
2009/07/23(木) 18:30:42ネットを検索してもサンプルを見つけることができませんでした。
どのようなプログラムにすればいいのでしょうか
0377デフォルトの名無しさん
2009/07/23(木) 21:40:17コードまで公開しているものは少ないだろう。
0378デフォルトの名無しさん
2009/07/24(金) 03:21:57瞳孔を調べるって事は、画像の中で一番くらい部分をおうようなプログラムにすればいいはず。
色をグレースケールに変更して、そのなかで一番くらい部分を検知してその真ん中を
中心としてその部分を追えばいいはず
サンプルの書き方はわからないので、だれか書いてあげて
0379デフォルトの名無しさん
2009/07/24(金) 08:50:270380デフォルトの名無しさん
2009/07/24(金) 12:16:00カメラの撮影圏内に目しかないのなら,瞳孔の色の物体の重心を測定すればいいんじゃね
サンプルコードはOpenCV プログラミングブックに載っていた気がした.
0381デフォルトの名無しさん
2009/07/24(金) 12:31:04まず顔の位置と範囲を検出してその中で目の位置を検出する。
目の検出は精度が悪いので顔の半分より上にあるなど条件を絞って誤検出を消す。
あとは瞳を検出して次のフレームからトラッキングする。
目を検出したあとは虹彩認証と同じだから
http://cnx.org/content/m12487/latest/
が参考になる。
0382デフォルトの名無しさん
2009/07/24(金) 20:14:170383デフォルトの名無しさん
2009/07/24(金) 21:04:280384_
2009/07/25(土) 04:28:56学習用の画像をとりあえず何千枚か用意しました。
正解画像の場合は、リストファイルの中に対象オブジェクトの
画像内での座標、横幅、高さを入力する必要がありますが、
これを効率よくやるツールってないのでしょうか?
私が今思いつくのは、windowsに標準で入ってるペイントを使う
方法だけです。
"選択"を使用してオブジェクトが含まれる領域を囲むと
その部分の座標と横幅と高さが右下の方に表示されますが、
これを逐次記録していくのが非常にめんどくさいです。
なんかいい方法あれば教えていただけると助かります。
0385デフォルトの名無しさん
2009/07/25(土) 06:03:000386デフォルトの名無しさん
2009/07/25(土) 06:50:510387386
2009/07/25(土) 06:55:37>>385の言うようにOpenCVでそれ専用に作ったらいいかも。
マウスで取得して座標値を保存してくプログラム。
0388デフォルトの名無しさん
2009/07/25(土) 17:23:060389デフォルトの名無しさん
2009/07/26(日) 17:43:12複数のカメラのindexを知りたいときってどうすれば良いでしょうか?
今は、cvCreateCameraCapture( 1 )
1,2,3と順番に確認してるのですが、面倒だと感じています。
0390デフォルトの名無しさん
2009/07/27(月) 12:04:49int* index;
int nselected = cvcamSelectCamera(&index);
int cam1 = index[0];
int cam2 = index[1];
int cam3 = index[2];
0392デフォルトの名無しさん
2009/07/29(水) 19:20:340393デフォルトの名無しさん
2009/08/02(日) 15:46:01この関数の第4引数のscale_factorは,第7引数のmin_sizeで設定された
ウィンドウサイズを変えるものと考えてよろしいのでしょうか。
例えば
scale_factor = 1.2,min_size = (20,20)のとき
ウィンドウサイズは(24,24)となります。
ただ上記の設定で静止画に対し顔検出を行なった場合に,
様々な大きさの顔が検出されるのですが,なぜでしょうか。
0394デフォルトの名無しさん
2009/08/02(日) 17:39:18scale_factorは探索サイズを何倍ずつ大きくするかっていうもの
0395デフォルトの名無しさん
2009/08/02(日) 22:06:22ありがとうございます。
あと1点追加で質問があります。
探索サイズはどこまで大きくなるんでしょうか。
0396デフォルトの名無しさん
2009/08/03(月) 03:08:41探索する画像サイズまで
0397デフォルトの名無しさん
2009/08/03(月) 09:42:30わかりました。ありがとうございます。
うやむや感が取れました。
0398デフォルトの名無しさん
2009/08/05(水) 19:25:52著作権表示なしに勝手に使ったのでライセンス違反だ」
みたいなニュースを読んだんですが、知ってる人いますか?
OpenCVの条文読んだんですが、これって宣伝条項のない修正BSD
ライセンスですよね? 何が問題だったんでしょうか?
0399デフォルトの名無しさん
2009/08/05(水) 19:56:490400デフォルトの名無しさん
2009/08/05(水) 20:41:09<最も重要な動画>
911テレビ画像捏造説(2006年9月10日のフォックスニュースより)
http://www.youtube.com/watch?v=3ZRGMtvQ3eU
<重要な参考動画>
念写?呪われたフロントガラス?ー911ビデオ画像捏造の証拠映像
http://www.youtube.com/watch?v=cbOiyiOvC8g
奇妙な一致? 不可解な視差!! ー911ビデオ画像捏造の証拠映像
http://www.youtube.com/watch?v=klAtO-tJG6A
丸見え! お宝映像遂に流出!! ?911ボーイング不在の決定的証拠映像?
http://www.youtube.com/watch?v=yGd6uzkneOQ
驚愕! 超常現象? 異次元を飛行する飛行物体ー911テレビ画像捏造の証拠映像
http://www.youtube.com/watch?v=fsB1EtdT_JA
恐怖! 超常現象? 無傷なまま貫通する機首ー911テレビ画像捏造の証拠映像
http://www.youtube.com/watch?v=KZMKXAlY7Yw
911テレビ画像捏造/航空機不在説
http://www.youtube.com/watch?v=9twhhq6YIG8
0401デフォルトの名無しさん
2009/08/08(土) 16:03:26んで、画像をRGBで読んで輝度値に対して色々な色空間に変換する関数を実装してるんですが、
double ReH(double B,double G,double R){
double reH = 0;
reH = acos( (R-G)+(R-B) / ( 2 * sqrt( pow( (R-G), 2 ) + (R-B) * (G-B) ) ) );
if(G < B){
reH = 2 * M_PI - reH;
}
return reH;
}
上のような修正HSVのHを拾ってくる関数を作ってみたんですが、これ、返値を参照する時のフォーマットは何なんでしょうか。
%fでも%cでもエラーが出て、えらいこっちゃになってます。もともとchar型の配列だからそもそも無謀なんでしょうか。
0402デフォルトの名無しさん
2009/08/08(土) 17:42:21%f %c のくだりは分かりません.
0403デフォルトの名無しさん
2009/08/09(日) 01:14:54色空間変更後(関数で画素値いじり後)の画像はきちんと表示されるのにいじった画素値を直接参照しようとすると見えないんです。
うーむ・・・
%f%cはCでの出力の際のフォーマット指定子です。
0404デフォルトの名無しさん
2009/08/09(日) 01:37:32http://www.youtube.com/watch?v=vSnzb3An6WU
http://www.youtube.com/watch?v=5DQ0kaDzi6s
0405デフォルトの名無しさん
2009/08/09(日) 05:35:56ReHを使ってる所、doubleにキャストしてるところ、またcharに戻してる所、
%fでエラーが出るところのソースを出さないと答えは得られないんじゃね
0406デフォルトの名無しさん
2009/08/09(日) 11:28:36img = cvLoadImage("test.jpg",3);
img6 = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);
char p[3];
for(int r1 = 0; r1 < img->height; r1++){
for(int r2 = 0; r2 < img->width; r2++){
p[0] = img->imageData[img->widthStep * r1 + r2 * 3];
p[1] = img->imageData[img->widthStep * r1 + r2 * 3 + 1];
p[2] = img->imageData[img->widthStep * r1 + r2 * 3 + 2];
img6->imageData[img6->widthStep * r1 + r2 * 3] = ReH((double)p[0],(double)p[1],(double)p[2]);
img6->imageData[img6->widthStep * r1 + r2 * 3 + 1] = ReS((double)p[0],(double)p[1],(double)p[2]);
img6->imageData[img6->widthStep * r1 + r2 * 3 + 2] = ReV((double)p[0],(double)p[1],(double)p[2]);
}
}
としています。
ReHは>>401の通りです。
また、
double testparam = ReH(240.0,227.0,213.0);
printf("\n%f",testparam);
としても見えません。
0407デフォルトの名無しさん
2009/08/09(日) 11:50:26r1が3倍されていないのはさておき、「見えません」では言いたいことが判らない。
まさかとは思うが、改行後に出力しているから(文字通り)見えていないなんてことはないよな。
# 普通は改行文字を後にするもんだからねぇ。
それと、%fより%gをお勧め。
0408デフォルトの名無しさん
2009/08/09(日) 11:56:45どうすればいいのですか?
0409デフォルトの名無しさん
2009/08/09(日) 12:16:47>>406
Rehは色々計算してるけど、戻り値は0〜2πの範囲で返すようだが、それをcharに直すと0-6?
常にほとんど真っ黒なんだけどいいのか?
0410デフォルトの名無しさん
2009/08/09(日) 13:12:363倍ってさ,width のカウンタになってる r2 だけでいいんじゃないの?
>>408
一部分を ROI に指定して,ROI 情報を基に cvCreateImage して cvCopy したらいいんじゃね?
試していないけど.
0411406
2009/08/09(日) 13:20:55すみません、説明不足でした。
見えないというのは、常に出力時に-1#INDと表示されるのです。
変数の表示自体は出来ています。
%gは知りませんでした。使ってみます。ありがとうございます。
>>409
レス有難うございます。
ただ、実際に変換後のImageData配列を持ったIplImageを表示してみると真っ黒ではなくきちんと画像が表示されるんですよね・・・
うーむ・・・
0412デフォルトの名無しさん
2009/08/09(日) 13:28:51いや、いいならいいんだ。
>H
Hueを戻しているんだからそこはいいと思うのだが、imageDataの型が判らんな。少なくとも、charに変換しちゃ意味がない。
0413406
2009/08/09(日) 13:42:47ReHでdouble型を無理やりねじ込んでいるのがまずいのでしょうか。
ただ画像表示は出来るのに、輝度値表示は出来ないので、そこが謎なんです。
0414デフォルトの名無しさん
2009/08/09(日) 17:25:09http://www.youtube.com/watch?v=5DQ0kaDzi6s
0415デフォルトの名無しさん
2009/08/09(日) 18:30:30カッコが足りないだけだと思う。
acos の中の (R-G)+(R-B) / 分母
を
((R-G)+(R-B)) / 分母
に。
0416406
2009/08/09(日) 19:08:39ほんとだああああ
ありがとうございます・・・助かりました・・・
他のレス下さった方もありがとうございました!
0417デフォルトの名無しさん
2009/08/09(日) 23:00:05超ありがとう!今からやってみるよ
0418デフォルトの名無しさん
2009/08/10(月) 18:36:100419デフォルトの名無しさん
2009/08/10(月) 19:22:310420デフォルトの名無しさん
2009/08/10(月) 19:46:240421デフォルトの名無しさん
2009/08/10(月) 22:02:57一番右にツモったまたはロンした牌をおいて、
あとはいくつか選択肢に答えるだけ。(ロンあがり、ハイテイ、ドラある?など)
とにかくまずは画像で牌を認識できるかなんだ。
0422デフォルトの名無しさん
2009/08/11(火) 00:35:360423デフォルトの名無しさん
2009/08/12(水) 01:51:030424デフォルトの名無しさん
2009/08/13(木) 22:17:490425デフォルトの名無しさん
2009/08/15(土) 01:13:34Kruppaの方程式について解説した日本語の本ってありませんか?
0426デフォルトの名無しさん
2009/08/15(土) 09:51:04Amazon に無いみたいだし,そもそもないんじゃないの.
http://ci.nii.ac.jp/search?q=kruppa&x=0&y=0&title=&author=&affiliation=&journal=&issn=&volume=&issue=&page=&publisher=&references=&year_from=&year_to=&range=0&count=20&sortorder=1
こっちで検索したら,論文の一節くらいなら見つかるかもしれませんね.
0427デフォルトの名無しさん
2009/08/15(土) 15:36:19天井についているカメラから絵を描いている動画を撮影し、opencvで紙だけを検出したいのですがいまいち上手くいきません。
今のところ、
動画から画像を抜き出す
ROIで範囲指定(紙の角から100pixelほどを指定)
指定範囲内で特徴点検出(角を検出)
で上手く角を検出できていたのですが、角の三点以上が手などの障害物で隠れた状態で紙を動かされるとどうにも対応できません。
(隠された状態で動いているため、特徴点を追いかけてくれない)
※二点までが隠れずに動いたなら、その二点から隠れた二点を割り出すことができます。
そこでパターンマッチングで何かできないかと調べているのですが、いまいち上手くいきそうなものがありません。
比較的敷居も低く、成功しやすそうなのがテンプレートマッチングなのですが、画像が回転しまうと対応できませんし、
何かいい方法はありませんでしょうか?
※紙は最初真っ白なので特徴点が角くらいしかなく特徴点で検出するのは無理そうです。
0428デフォルトの名無しさん
2009/08/15(土) 19:25:421つの方法だけで完結させようとしないで、複数の方法を併用した方がいいかと。
0429デフォルトの名無しさん
2009/08/18(火) 00:25:54cvQueryFrame()をループでラストフレームまでまわしてます.
総フレーム数330000として,なぜか約225000フレーム目あたりでプログラムが自然と終了してしまいます.
ループ中に自作した処理にバグでもあってその約225000回目のループでメモリを食いきったのかと思って,
ループ開始フレームを220000フレームあたりに設定してもやはり225000フレーム目でプログラムが終了してしまいます.
VCのデバッグモードで実行しても実行停止してもバグ箇所の指摘をせずに勝手にプログラムが終了してしまいます.
原因はなんでしょうか?
環境winXPsp3 VC++2008Express OpenCV1.0およびOpenCV1.1です
0430デフォルトの名無しさん
2009/08/18(火) 03:00:36他にやることあるだろうが・・・。
0431デフォルトの名無しさん
2009/08/18(火) 12:24:460432デフォルトの名無しさん
2009/08/18(火) 21:14:17それとも、どんな動画ファイルでも225000フレーム付近を超えると必ず止まるのか、
そこのところをはっきりしてほしい。
0433429
2009/08/18(火) 22:37:21両方とも同じ方法で圧縮(SUPER Cにて)したのでもしかしたら動画に原因があるかもしれない.
それと説明不足でしたが一度ループ中の処理を全て消して,
cvQueryFrame()とcvSetCaptureProperty()のみにした上でも結果は同じでした.
0434デフォルトの名無しさん
2009/08/18(火) 23:30:30ソフトのデバッグしたことある?
0435デフォルトの名無しさん
2009/08/19(水) 01:29:23正常終了?
どっち?
0436デフォルトの名無しさん
2009/08/19(水) 02:18:32SuperC以外で圧縮するとか無圧縮でやってみるとか。
0437デフォルトの名無しさん
2009/08/21(金) 11:04:08cvFindStereoCorrespondenceで得た視差画像ってどうやって使うんですか?
画像から何ピクセルずれてる、っていうことが分かるんでしょうか?
初歩的ですみません。
0438384
2009/08/25(火) 21:51:07結局、自作しました。
スクリーンショット
http://sakuratan.ddo.jp/imgboard/img-box/img20090825214512.jpg
座標取得ツール
http://sakuratan.ddo.jp/uploader/source/date117269.zip
0439384
2009/08/25(火) 21:57:520440デフォルトの名無しさん
2009/08/26(水) 01:03:060441デフォルトの名無しさん
2009/08/26(水) 02:04:230442384
2009/08/26(水) 07:29:06汚いからあんまさらしたくないが、ソース。
Visual C# 2008 express edition使用です。
http://sakuratan.ddo.jp/uploader/source/date117280.zip
0443384
2009/08/27(木) 00:31:55ver0.6をリリースします。下記にスペース設けましたので、
以後は↓を参照ください。
http://www.geocities.jp/countman_shk/shien/shien.html
0444デフォルトの名無しさん
2009/08/28(金) 03:16:22ソース見たとこOpenCV使ってないみたいだね
OpenCVSharpかSharperCVを使えばC#でもOpenCVアプリが作れるから使って連携させたらどう?
OpenCVSharpは日本人が開発者でサンプルソースも日本語で説明してくれてるし使える関数も多いからオススメ
0446デフォルトの名無しさん
2009/08/28(金) 07:33:330447デフォルトの名無しさん
2009/08/28(金) 17:22:45がんばれ
0449デフォルトの名無しさん
2009/08/28(金) 21:20:42りの初心者のものです。
Microsoft Visual Studioで処理した画像を表示させるために、タブのデバッグ
でデバッグ開始させた後にコンパイルは通るのですが、
『Visual Studio Just-In-Time デバッガ』とウィンドウが出てきまして、
そこで『image.exe[4444]でハンドルされていないWin32の例外が発生しました。』
と表示されているのですが、どうしたらよろしいでしょうか?
同じような画像で処理すると片方だけ上記のようなエラーが出て、画像処理ができません。
0450デフォルトの名無しさん
2009/08/29(土) 02:14:390451デフォルトの名無しさん
2009/08/30(日) 22:35:40ここのサイトに、
OpenCVで生成した非圧縮AVIはOpenCVで読み込むと失敗する模様
と書いてあるんですが、どうもその現象に嵌ったらしくて動画が読み込んだときに右にずれてしまいます(ずれた分は左にから表示される)
対策として、
image->imageData += 0x400 とすると合う.
と書いてあるんですが、いまいちこれをどこに挿入したらいいのかわかりません。
これっておそらく動画のヘッダ部分が1024バイト分=0x400ずれているのだと思うのですが、
どの辺りに挿入したらいいのかわかりますか?
CvCapture *video; // キャプチャ構造体
IplImage *image; // 画像のポインタ(領域確保は不要)
cvNamedWindow(WINDOW_INPUT); // ウィンドウ生成
video = cvCaptureFromAVI(DEFAULT_VIDEO);//キャプチャ構造体生成
while(c = cvWaitKey(1), c != 27){ // ループ
image = cvQueryFrame(video); // ビデオから1枚取得
cvShowImage(WINDOW_INPUT, image); // 画面に表示
}
cvReleaseCapture(&video); // ビデオ構造体解放
cvDestroyWindow(WINDOW_INPUT); // ウィンドウ破棄
// imageはこの場合解放してはいけないらしい
0452デフォルトの名無しさん
2009/08/31(月) 10:58:56image->imageData += 0x400
cvShowImage(WINDOW_INPUT, image); // 画面に表示
素直に、これでいいんでねーの? 責任は取らんが。
0453デフォルトの名無しさん
2009/08/31(月) 11:07:24とかするとメモリーリークしそうだが大丈夫なんかね
0454デフォルトの名無しさん
2009/08/31(月) 11:28:020455デフォルトの名無しさん
2009/08/31(月) 11:44:480456デフォルトの名無しさん
2009/09/02(水) 16:34:08CvScalar point = cvGet2D(img_gray , y , x);
double a = point.val[0];
とやっても、aに値が格納されてないみたいなのですが…。
代わりの方法ってどのようなものがありますか?
0457デフォルトの名無しさん
2009/09/02(水) 20:29:06unsigned char value = (unsigned char)img_gray->imageData[ x + y * img_gray->widthStep];
0459デフォルトの名無しさん
2009/09/05(土) 18:17:42_ml.pydはsite-packages\opencvにあります。
解決策ご存じないでしょうか?
C:\Program Files\OpenCV\samples\python>C:\Python26\python.exe contours.py
OpenCV Python version of contours
Traceback (most recent call last):
File "contours.py", line 6, in <module>
from opencv import cv
File "C:\Python26\lib\site-packages\opencv\__init__.py", line 75, in <module>
from ml import *
File "C:\Python26\lib\site-packages\opencv\ml.py", line 7, in <module>
import _ml
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
0460デフォルトの名無しさん
2009/09/05(土) 18:22:07C:\Program Files\OpenCV\binをPATH二対かしたらできました。
0461デフォルトの名無しさん
2009/09/07(月) 07:40:360462デフォルトの名無しさん
2009/09/07(月) 09:31:320463デフォルトの名無しさん
2009/09/08(火) 03:59:28http://www.youtube.com/watch?v=9vIR0uaDSuA
0464デフォルトの名無しさん
2009/09/08(火) 17:51:15B= (unsigned char) color_img->imageData[y*color_img->widthStep + x*color_img->nChannels];
G= (unsigned char) color_img->imageData[y*color_img->widthStep + x*color_img->nChannels + 1];
R= (unsigned char) color_img->imageData[y*color_img->widthStep + x*color_img->nChannels + 2];
これじゃRGB値取れないんですかね?真っ白になります
0465デフォルトの名無しさん
2009/09/08(火) 21:41:07何故なのでしょうか?
0466デフォルトの名無しさん
2009/09/08(火) 21:53:340467デフォルトの名無しさん
2009/09/09(水) 01:01:31> > > > > > > > > > >>>>> <<<<< < < < < < < < < < <
> > > > > > > > > > >>>>> <<<<< < < < < < < < < < <
> > > > > > > > > > >>>>> <<<<< < < < < < < < < < <
> > > > > > > > > > >>>>> <<<<< < < < < < < < < < <
> > > > > > > > > > >>>>> <<<<< < < < < < < < < < <
> > > > > > > > > > >>>>> <<<<< < < < < < < < < < <
> > > > > > > > > > >>>>> <<<<< < < < < < < < < < <
> > > > > > > > > > >>>>> <<<<< < < < < < < < < < <
0468デフォルトの名無しさん
2009/09/09(水) 02:44:35なにを計算してるのかわからんけど、日本の国旗って白と赤しか使ってなくて赤の色相って0だから全部0なんじゃね?
0469特になし
2009/09/09(水) 23:31:49opencvで処理した画像をフルスクリーンで表示させたいのですが、どういった方法がありますか?
0470デフォルトの名無しさん
2009/09/10(木) 00:54:280471デフォルトの名無しさん
2009/09/10(木) 08:40:270472デフォルトの名無しさん
2009/09/10(木) 18:55:11ここの顔の検出のサンプルコードを参考にOpenCvSharpを使ってVisualC#2008EEで同じように書いてるのですが
const string cascade_name = "haarcascade_frontalface_default.xml";
CvHaarClassifierCascade cascade;
(略)
// (2)ブーストされた分類器のカスケードを読み込む
cascade = Cv.Load<CvHaarClassifierCascade>(cascade_name);
ここで
保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
とエラー。
---------------------------------------------------------------------------------
const char *cascade_name = "haarcascade_frontalface_default.xml";
CvHaarClassifierCascade *cascade = 0;
cascade = (CvHaarClassifierCascade *) cvLoad (cascade_name, 0, 0, 0);
---------------------------------------------------------------------------------
この部分をC#で書くと、どのようになるのでしょうか?
0473デフォルトの名無しさん
2009/09/10(木) 20:49:35画像から腕領域(前腕と上腕)の輪郭線の抽出はまではできました。
cvFitEllipse2関数は輪郭を最もやく近似する楕円を返すということ
なので、前腕と上腕の分離に使えないかと思ったのですが、
下記のような上腕(◇部分)と前腕(■部分)となる輪郭線が
あった場合、同関数では全体で1つの楕円で近似します。
◇
◇
■■■◇
上腕部分で一つの楕円、また前腕部分でもう一つの楕円で
近似したい場合(合計で2つの楕円で近似したい場合)はどのような
パラメータを操作したらよいのでしょうか。
もしくは、なにか別の方法などがありましたら教えていただけないでしょうか。
よろしくお願いします。
0474デフォルトの名無しさん
2009/09/11(金) 03:04:13角が切れないように回転させる(四角でなくひし形などに画像が出力される)方法
はないでしょうか?
0475デフォルトの名無しさん
2009/09/11(金) 03:07:360476デフォルトの名無しさん
2009/09/11(金) 09:56:360477デフォルトの名無しさん
2009/09/12(土) 16:00:52■■■■■■■■■■■ ■■■■
■■■■■■■■■■ ■■■
■■■■■■■■■■ ■■■■
■■■■■■■■■■ ■■■■■
■■■■■■■■■■■■■■■
このような2値画像があったとします。
白い部分のx座標とy座標の最大最小値を求める関数はありませんか?
0478デフォルトの名無しさん
2009/09/12(土) 16:05:31自分で考えろ。
0479デフォルトの名無しさん
2009/09/12(土) 17:49:40に載ってるソースコードはどこにある?
本にはhttp://oreilly.com/catalog/9780596516130/にあるって書いてあるんだが見つからない・・
0480デフォルトの名無しさん
2009/09/12(土) 18:55:39つExamples
表紙の下にあるやつな。
0481デフォルトの名無しさん
2009/09/12(土) 19:22:400482デフォルトの名無しさん
2009/09/13(日) 08:31:15ヒストグラムから画像を書き戻す方法がわからない。
明るさ、コントラストの調整するプログラムを作りたいんだけども。
参考になりそうなサンプルがあったら教えてください。
0483デフォルトの名無しさん
2009/09/13(日) 08:48:13痒い所に手が届かない
0484デフォルトの名無しさん
2009/09/14(月) 02:28:48ここにある「画像を他の画像の(x,y)を左上とする位置に合成する関数」を実行したいのですが
8行目のcopyatという関数が定義されていませんと言われます。
特別なライブラリが必要なのでしょうか?
0485デフォルトの名無しさん
2009/09/14(月) 03:25:490486デフォルトの名無しさん
2009/09/14(月) 04:08:32そのやり方で解決いたしました。ありがとうございます
M(__)M
copyatは謎に包まれたままですが・・
0487デフォルトの名無しさん
2009/09/14(月) 07:01:25何トチ狂った事を言っているんだ。落ち着いてヒストグラムって何かを調べよう。
ある色の濃さ以上だったら表示したいのかな
0488482
2009/09/14(月) 08:33:580489デフォルトの名無しさん
2009/09/14(月) 09:15:28そこは先ずできているのかな?
0490デフォルトの名無しさん
2009/09/14(月) 15:11:020491デフォルトの名無しさん
2009/09/15(火) 18:16:350492491
2009/09/15(火) 21:28:430493デフォルトの名無しさん
2009/09/15(火) 23:04:56最近、USBカメラがUVC化してるが
けっこう前に作ったプログラムに組み合わせてみたら
動ごいてたのが動かなくなってびっくり。
どうもcvCreateCameraCapture関数がUVCに対応してないらしいんだが・・・
これ、対応すんのかな?
0494デフォルトの名無しさん
2009/09/15(火) 23:26:430495482
2009/09/17(木) 02:46:47ルックアップテーブルと行列演算がキーワードだった。
0496デフォルトの名無しさん
2009/09/17(木) 16:21:05自宅監視システム作ってる人とか居るの?
0497デフォルトの名無しさん
2009/09/17(木) 18:53:490498デフォルトの名無しさん
2009/09/17(木) 22:28:470499デフォルトの名無しさん
2009/09/18(金) 17:16:57おかんが勝手に入ってきて
エロ(本|ビ|ゲ)を見つけだして机の上に置いて
「気にしてませんから」の書き置きをしていったり
しないようにですねわかります
0500デフォルトの名無しさん
2009/09/18(金) 17:53:45気にするほうがおかしいだろ
0501デフォルトの名無しさん
2009/09/18(金) 18:55:00の例のpoint_countって2画像間の対応点の数ってことであってる?
0502デフォルトの名無しさん
2009/09/19(土) 18:29:20のようにアドレスで指定するにはどうすればいいでしょうか?
0503デフォルトの名無しさん
2009/09/20(日) 01:45:230504デフォルトの名無しさん
2009/09/20(日) 17:09:45入れ子になってる親と子の輪郭だけ残して
孤独な輪郭は除外するプログラムを書きたいのですが、どうすればいいでしょうか
0505デフォルトの名無しさん
2009/09/21(月) 16:42:34どうやると良いんでしょうか。(保存はcvSaveImageだと思いますが)
0506デフォルトの名無しさん
2009/09/21(月) 19:34:390507名無し募集中。。。
2009/09/22(火) 18:33:450508デフォルトの名無しさん
2009/09/24(木) 17:50:19OpenCVかC++かどっちがいいですかね?
0509デフォルトの名無しさん
2009/09/24(木) 17:53:350510デフォルトの名無しさん
2009/09/24(木) 17:54:170511デフォルトの名無しさん
2009/09/24(木) 17:55:570512デフォルトの名無しさん
2009/09/24(木) 18:01:08日本語で説明してください
やりたい事も不明確だし、どっちがいいか聞かれても同じものじゃないから比較しようがない。
釣りなの?
0513デフォルトの名無しさん
2009/09/24(木) 18:05:03例えば衛星画像(住宅密集地)をエッジ処理をかけて、
地震など災害が起きたときの画像もエッジ処理かけて、
2枚の画像(元画像と災害時画像)を比較したいんですが、、、
0514デフォルトの名無しさん
2009/09/24(木) 18:09:56エッジを取ったり一致を比較するのはオープンCV任せで。
0515デフォルトの名無しさん
2009/09/24(木) 21:45:11中越地震程度じゃ住宅密集地には何の変化もないぞよ。
住宅密集地を対象にするなら阪神・淡路のような大震災クラスの画像でやらない
と卒論にならん。
山崩れにしたら?
0516デフォルトの名無しさん
2009/09/25(金) 12:05:290517デフォルトの名無しさん
2009/09/27(日) 08:36:02ROIの円形バージョン的な。
というかそもそも円形画像を扱う型がないんか。
教えてクリリン
0518デフォルトの名無しさん
2009/09/27(日) 15:48:52確かに阪神大震災クラスの画像じゃなきゃ変化が取れないですよね。
OpenCVで双方の画像を比較するのに使うアルゴリズムって、
サンプルコードみてもやはり無いんですが。。。
どういうものを使ったらいいですかね?
509さんのようにCで「diff」を使うほかに。。。
0519デフォルトの名無しさん
2009/09/27(日) 16:10:32ttp://opencv.jp/sample/optical_flow.html#optflowHSLK
0520デフォルトの名無しさん
2009/09/28(月) 00:32:15while(1){(省略)
key = cvWaitKey(0);
(動作) } ってすると必ず1回目のwaitKeyが-1で飛ばされて2回目から止まるんですが、これミスデスかね・・・
0521520
2009/09/28(月) 01:06:520522デフォルトの名無しさん
2009/09/28(月) 10:49:25確かにオプティカルフローのサンプルは使えそうですね!
どれだけ移動したか考えると、比較につながりそうです。
ありがとうございます、すこしプログラムと睨めっこします。
0523デフォルトの名無しさん
2009/09/29(火) 19:16:39オプティカルフローのサンプルプログラムなんですけど、
入力画像test1.bmpとtest2.bmpで実行したいんですけど、
サンプルプログラムのどの部分を変えればいいんですか?
src_imgあたりはわかるんですけど、いざデバックするとエラー。。。
超初歩的な質問ですみません。
ttp://opencv.jp/sample/optical_flow.html#optflowHSLK
0524デフォルトの名無しさん
2009/09/29(火) 19:33:01cvLoadImage()で画像を読み込んでるのは明らかなんだし
>いざデバッグするとエラー
そのエラーを取るのがデバッグだろうにw
0525デフォルトの名無しさん
2009/09/30(水) 00:29:59cvLoadImageを調べなさい
===============================
if (argc != 3 ||
(src_img1 = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE)) == 0 ||
(src_img2 = cvLoadImage (argv[2], CV_LOAD_IMAGE_GRAYSCALE)) == 0)
return -1;
dst_img1 = cvLoadImage (argv[2], CV_LOAD_IMAGE_COLOR);
の行が以下でいいかと。
src_img1 = cvLoadImage ("test1.bmp", CV_LOAD_IMAGE_GRAYSCALE);
src_img2 = cvLoadImage ("test2.bmp", CV_LOAD_IMAGE_GRAYSCALE);
dst_img1 = cvLoadImage ("test2.bmp", CV_LOAD_IMAGE_COLOR);
0526デフォルトの名無しさん
2009/10/01(木) 05:24:40cvCaptureFromFileで動画ファイル(avi)が何故か読み込めない上に(色々な動画で試しました)
カメラ画像を出力しても0KBのファイルが生成されてしまいます。
プログラム以前に何か設定の部分で間違っているような気もするのですが改善策をご存知の方はいらっしゃいませんか?
0527526
2009/10/01(木) 07:02:440528デフォルトの名無しさん
2009/10/01(木) 11:43:090529デフォルトの名無しさん
2009/10/01(木) 14:31:39現在cvCreateSeq(0, sizeof(CvSeq), sizeof(Data), storage))でシーケンスを作っています。
Dataは自作構造体で、{short flag; CvPoint pt[4];}です。
flag部分を0に設定してData型の変数をpushした後、
シーケンス内のデータの変更を行う方法を教えていただけませんでしょうか。
cvGetSeqElemで読み出せることはわかっているのですが…
よろしくおねがいします。
0530デフォルトの名無しさん
2009/10/01(木) 16:35:500531デフォルトの名無しさん
2009/10/03(土) 14:21:46サンプルのコードとか試してるのに
0532デフォルトの名無しさん
2009/10/05(月) 14:56:041 /usr
2 /usr/local
0533デフォルトの名無しさん
2009/10/05(月) 17:51:45以前オプティカルフローに関して質問させていただき、
サンプルプログラムを少々いじくりましたが、結果が出ません。
どこが間違っているかご指摘をいただけると幸いです。
元プログラム:ttp://opencv.jp/sample/optical_flow.html#optflowHSLK
test1.bmpとtest2.bmpを元画像とします。
以下プログラムです。
0534デフォルトの名無しさん
2009/10/05(月) 17:53:37今回test1.bmpとtest2.bmpを元にプログラムを実行したのですが、
警告・エラーはないのですが結果が出ませんでした。
どこが悪いかご指摘をいただけると幸いです。
以下プログラムです。
0535デフォルトの名無しさん
2009/10/05(月) 17:55:19#include <highgui.h>
int
main (int argc, char **argv)
{
char windowsNameInput1[] = "Input1";
char windowsNameInput2[] = "Input2";
char windowsNameImageHS[] = "ImageHS";
char windowsNameImageLK[] = "ImageLK";
int i, j, dx, dy, rows, cols;
IplImage *src_img1, *src_img2, *dst_img1, *dst_img2;
CvMat *velx, *vely;
CvTermCriteria criteria;
if (argc != 3 ||
(src_img1 = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE)) == 0 ||
(src_img2 = cvLoadImage (argv[2], CV_LOAD_IMAGE_GRAYSCALE)) == 0)
return -1;
src_img1 = cvLoadImage ("test1.bmp", CV_LOAD_IMAGE_GRAYSCALE);
src_img2 = cvLoadImage ("test2.bmp", CV_LOAD_IMAGE_GRAYSCALE);
dst_img1 = cvLoadImage ("test2.bmp", CV_LOAD_IMAGE_COLOR);
dst_img2 = (IplImage *) cvClone (dst_img1);
0536デフォルトの名無しさん
2009/10/05(月) 17:59:55cols = src_img1->width;
rows = src_img1->height;
velx = cvCreateMat (rows, cols, CV_32FC1);
vely = cvCreateMat (rows, cols, CV_32FC1);
cvSetZero (velx); cvSetZero (vely);
criteria = cvTermCriteria (CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 64, 0.01);
// (2)オプティカルフローを計算(HS)
cvCalcOpticalFlowHS (src_img1, src_img2, 0, velx, vely, 100.0, criteria);
// (3)オプティカルフローを描画(HS)
for (i = 0; i < cols; i += 5) {
for (j = 0; j < rows; j += 5) {
dx = (int) cvGetReal2D (velx, j, i);
dy = (int) cvGetReal2D (vely, j, i);
cvLine (dst_img1, cvPoint (i, j), cvPoint (i + dx, j + dy), CV_RGB (255, 0, 0), 1, CV_AA, 0);
}
}
0537デフォルトの名無しさん
2009/10/05(月) 18:11:21524は俺なんだけど。もっと落ち着いたらいいんじゃね?
>if (argc != 3 ||
argcが3じゃなかったらreturn -1で終了なんだけど、ここは大丈夫?
「結果が出ない」っていうのはどういう状態なのさ
画像読み込みの失敗等のエラー処理もしてないんだし、src_img1の値を表示させたり
適当なとこにprintf("ここまで動いた\n");とか入れてチェックしてみたら?
0538デフォルトの名無しさん
2009/10/06(火) 18:25:31本日研究の週間報告でオプティカル(以後OP)を
使って画像比較をすると報告したら、
OPは画像ではなく物体移動すなわち動画が適しているからね。
といわれ、画像の差分をまずはとりなさいといわれました。
イメージとしては
ttp://www.gsi.go.jp/WNEW/koohou/444-6.htm
これをOpenCVで表示するとなると、
どんなプログラムになるんですか?教えていただけますか?
0539デフォルトの名無しさん
2009/10/06(火) 18:29:13検索すればすぐにわかるんだろそんなこと
0540デフォルトの名無しさん
2009/10/07(水) 00:00:300541デフォルトの名無しさん
2009/10/07(水) 15:19:150542名無し募集中。。。
2009/10/07(水) 19:34:49むしろ、そういった知識を体系的にまとめた本とかある?
0543デフォルトの名無しさん
2009/10/07(水) 20:01:15一般的なことはこれで大丈夫だと思う
もしくはLearning OpenCVでもいいんじゃないか
0544デフォルトの名無しさん
2009/10/08(木) 05:37:51知らなければ損することもいっぱいあることに気付いて欲しい
0545デフォルトの名無しさん
2009/10/08(木) 10:29:370546デフォルトの名無しさん
2009/10/08(木) 14:04:260547デフォルトの名無しさん
2009/10/08(木) 17:53:59とっかかりから詰まってると、このあとも詰まるぞ。
かわいそうだからヒントだけ書いてやる。
IplImage *imgpre,*imgpst,*imgdif;//震災前画像、震災後画像、差分画像
imgpreに震災前の写真.jpgを読み込ませ、カラーならグレースケールにしておく
imgpstに震災後の写真.jpgを読み込ませ、カラーならグレースケールにしておく
imgdif=cvCreateImage(元写真と同じサイズ,IPL_DEPTH_8U,1);// 差分画像
cvAbsDiff(imgpre,imgpst,imgdif);//キミの研究テーマに不可欠な関数だ!
cvShowImage (適当,imgdif);//表示
で、ttp://www.gsi.go.jp/WNEW/koohou/444-6.htmの
地震前後の写真を使ってやってみな。
上の手順なら、差分だけ白くなると思う。
ウェブページのように差分を赤く表示したいなら、
適当に色変換してから、地震前の画像にインポーズしておけ。
グレースケール化は
cvCvtColor(絵1,絵2,CV_BGR2GRAY);とかな。
関数の詳細は自分で調べろ。
0548デフォルトの名無しさん
2009/10/08(木) 18:02:41どうしても略したいなら「フロー」。
そう言ってる人は学会で見たことがある。略称なら"of"だ。
キミの指導教官の給与を一部を、私の口座に振り込んでおくようにw
0549デフォルトの名無しさん
2009/10/09(金) 02:27:57私の学科はソフト・ハードを広く浅く学ぶ学科で、
プログラミングも深くやっておらず理解していません。
そのためOpenCVを進められたわけです。
みなさんの意見を元に、再度頑張りたいと思います。
0550デフォルトの名無しさん
2009/10/10(土) 13:41:090551デフォルトの名無しさん
2009/10/11(日) 16:17:24cvFindContours関数の戻り値が輪郭の総数になってる
0552デフォルトの名無しさん
2009/10/12(月) 01:00:59まだPythonバインディングがうまく動かね〜
ランタイムの違いかなぁ
かといってビルドしなおす気にもならね〜
0553デフォルトの名無しさん
2009/10/12(月) 01:06:120554デフォルトの名無しさん
2009/10/12(月) 01:11:10OpenCV2.0\Python2.6\Lib\site-packages
に pth でパス通して import cv もできることを確認して
OpenCV2.0\tests\python\test.py のテストをやってみたら
いくつかだけテストとおるけどあとはエラーで
さらに途中で python.exe が停止しましたと来る。
久々に OpenCV 使おうと思ったら 2.0 になっててビビタ
0555デフォルトの名無しさん
2009/10/12(月) 01:52:520556デフォルトの名無しさん
2009/10/12(月) 09:01:08g++ 用のものなんだな.dumpbin.exe で確認した.
Visual C++ と g++ じゃ名前変形の規則が違うからなぁ.
寝る
0557デフォルトの名無しさん
2009/10/12(月) 09:01:58Visual C++ 用のインポートライブラリだったんだが・・・
寝る
0558デフォルトの名無しさん
2009/10/12(月) 09:45:460559デフォルトの名無しさん
2009/10/12(月) 10:01:370560デフォルトの名無しさん
2009/10/12(月) 15:41:24OpenCV2.00aをインストールし、CMakeで下記を設定しビルド
しましたが、C:\OpenCV2.0\buildにOpenCV.slnが作られませんでした。
解決方法知ってたら教えてください。
<ソースコード、ビルド先フォルダ>
Where is the source code: C:\OpenCV2.0
Where to build the binaries: C:\OpenCV2.0\build
<開発環境>
visual studio 9 2008 expression
<OS>
windows vista home basic
よろしくお願いします。
0561デフォルトの名無しさん
2009/10/12(月) 15:46:07Where to build the binaries: C:\OpenCV2.0
で configure + generate
不完全なソリューションができるけどビルド.
ビルドできた状態でもう一度同じ CMake すると
完全なソリューションができた気がする.
0562デフォルトの名無しさん
2009/10/12(月) 15:58:19自己解決できんかったら
今後のため止めとくべき
0564デフォルトの名無しさん
2009/10/12(月) 16:30:00面倒な人がいるかもしれないので
Visual C++ 2008 使ってる人用に CMake して
ソリューション作って本体と tests と samples が
ビルドできる状態のものをあげておきます.
手元のノートPCにカメラが無いのでその系統の
テストはできてません.
あれ?hist-backprojpatch のテストで落ちるなぁ・・・
落ちるといえばバイナリ配布に最初から入ってる
cvtest.exe でも私の環境だと落ちますが.
0565デフォルトの名無しさん
2009/10/13(火) 17:04:20cvCreateCameraCapture(0)、 cvCreateCameraCapture(1)と割り振り、
キャプチャ用の構造体をcapture、capture2としているのですが、
2台目のカメラが読み込めません。
プログラム的な問題でしょうか、それともハードの問題でしょうか?
環境は、XpでCPU:C2D、カメラは両方エレコムのUSBカメラです。
0566デフォルトの名無しさん
2009/10/13(火) 17:18:07USBのポート変えても同じ?
0567デフォルトの名無しさん
2009/10/13(火) 17:57:38画を取り込む前に、
デバイスとして見えているかを確認してからじゃない?
0568デフォルトの名無しさん
2009/10/13(火) 23:34:500569デフォルトの名無しさん
2009/10/14(水) 18:30:41たびたび質問まことに申し訳わりません。
差分までのプログラムはなんとか組む事ができました。
ただ差分処理をかけると画像1と画像2が合成したように
見えてしまうのは何故でしょうか?
547さんの言うとおり、ある程度は組みましたが
変化しているところが視覚的に理解できませんでした。
どのようにしたらいいのでしょうか?ご教授お願いいたします。
0570デフォルトの名無しさん
2009/10/14(水) 19:02:39全白と全黒、全白と全白+文字、あたりで差分してみれば?
0571デフォルトの名無しさん
2009/10/14(水) 19:33:52君のプログラムでどんな処理してるかわからんのでアドバイスは難しい。
プログラムの確認という意味では自分で簡単な画像を作って検証してみたら良い。
それとたびたび来るつもりなら名前欄に最初のレス番入れてくれ。アンカも>>で付けてくれ
0572デフォルトの名無しさん
2009/10/14(水) 19:53:05ブログでも作って、コードと画像乗っけて質問したほうがいいよ
0573デフォルトの名無しさん
2009/10/15(木) 01:16:300574デフォルトの名無しさん
2009/10/15(木) 03:17:55話も進みやすいんじゃないだろうか
0575デフォルトの名無しさん
2009/10/15(木) 08:40:30カラーのまま差分とってるから、引ききれないのとかが残って反転したようになって
写真のネガみたいになってるんじゃないか?
全部グレーに変換してから差分を取れば?
0576デフォルトの名無しさん
2009/10/15(木) 09:29:17撮影ポイント、撮影角度、撮影距離の違い。
時間帯による全体的な明るさの違い。
影響を除くのが難しそうなもの
雨の前後の土やアスファルトの色
雲や煙。
太陽の向きによる建物の影
季節による植物の成長、落葉、枯死。
地震のあとの水の濁り。
まあ、頑張ってくれ。
0577デフォルトの名無しさん
2009/10/15(木) 15:21:26HPで説明させていただきますので一度以下のアドレスへお願いいたします。
http://www.geocities.jp/nagasakalab/
これを元に、どこにプログラムを足したらいいか
教えていただけないでしょうか?
よろしくお願いいたします。
0578デフォルトの名無しさん
2009/10/15(木) 15:28:00先生に聞けよ
OpenCVがどうこうってレベルに達してないように見えるしさ
0579デフォルトの名無しさん
2009/10/15(木) 15:50:54http://gihyo.jp/dev/feature/01/opencv/0004?page=3
haartrainingが落ちるし、再コンパイルもエラー吐いて出来ない
環境は
OpenCV1.1pre
VS2008
です
0580デフォルトの名無しさん
2009/10/15(木) 16:03:18とりあえずOpenCVの本買って一から勉強したほうが早いよ
素人の俺でも君の理解の低さがわかってしまうくらいだ
0581デフォルトの名無しさん
2009/10/15(木) 16:12:17機能自体はちゃんと動いてる。
みんないってるけど本買って読んだ方がはやい。
奈良先端の本かオライリーの本がお勧め。
奈良先端の本の方が初心者向けでわかりやすいと思う
0582デフォルトの名無しさん
2009/10/15(木) 17:56:480583デフォルトの名無しさん
2009/10/15(木) 18:23:36奈良先とCUTTの本持ってるけどもう少し技術的な部分を学びたくて気になってるんだが
如何せん近所の本屋になくて困ってる
0584579
2009/10/15(木) 19:13:330585名無し募集中。。。
2009/10/15(木) 23:34:32HPにコメント付ける所無いんだね(だからblogのようなシステムが適しているって言われる
ここ(2ch)では集中した議論は出来ないぜ
ところで自分が最終的に欲しい絵をラフでいいから作ってみなよ
「この問題の答えを教えてください」は誰もが答えたくないが
「こういった問題の考え方・解き方を教えてください」なら誰かが答えてくれるかもしれない
0586デフォルトの名無しさん
2009/10/16(金) 13:27:42誰か答えてあげよう。
0587デフォルトの名無しさん
2009/10/16(金) 13:35:31答えるにしてもソースコード自体は問題ない。
>>577がどこが足りなくて最終的にどんな形で見せたいのかがわからんからなんとも。
学生のようだから俺が要求満たすものつくったとしても為にならんしな
0588デフォルトの名無しさん
2009/10/16(金) 13:41:05570が言うように、いきなりスマトラの画像じゃなくて最初は簡単な画像で試してみようぜ。
ペイントソフトで適当に丸とか四画とか描いて2枚目にはちょっとずらして描いてみるとか。
ソースコード自体はなんも間違ってないしネガみたいな結果画像も間違ってはないな。
間違ってるのは差分の考え方だけ。
0589デフォルトの名無しさん
2009/10/16(金) 13:41:54http://2chart.fc2web.com/itkakumei/pic/002.jpg
0590デフォルトの名無しさん
2009/10/16(金) 13:46:34ちなみにヒント言うと、海のとことか森のとことか一見変化ないように見えるけど
画像の画素レベルではめっちゃ変化してるからな。
0592デフォルトの名無しさん
2009/10/16(金) 13:48:04分かりやすいようでめっちゃ分かりにくいw
0593デフォルトの名無しさん
2009/10/16(金) 13:53:090594デフォルトの名無しさん
2009/10/16(金) 13:56:28踏んだら予想したとおりの画像だった。
0595デフォルトの名無しさん
2009/10/16(金) 17:21:47当然指導教官も差分処理だけで課題が解決するとは思っていない。
どんな教育機関のどんな教官なのか具体的に知らないので、想像に過ぎないが、課題を解決する理想的な出力と差分の出力との間に、どんな違いがあって、その溝を埋めるにはどうすればいいか考えさせたいんだと思うよ。
理想的な結果を得ることも大事だけど、それにいたる過程や考察を求めているんじゃないのかな。
(そうでなければ、ひどく専門的な課題だろう。大学院クラスの。)
0596デフォルトの名無しさん
2009/10/16(金) 18:20:48ちょっと纏めてからやり始めたほうがいいって
0597デフォルトの名無しさん
2009/10/16(金) 18:47:110598デフォルトの名無しさん
2009/10/17(土) 00:49:060599デフォルトの名無しさん
2009/10/17(土) 01:01:42もう構造体の変数名変更とか大きな変更はない思っていい?
0600デフォルトの名無しさん
2009/10/17(土) 01:13:14カラー画像のまま差分し、int型に写してから
10倍くらいに増幅し、255以上をtruncateすると
それなりに面白い画像になった。
0601デフォルトの名無しさん
2009/10/18(日) 20:37:45>>588 さんの言うとおり自分なりにペイントで
説明させていただきますのでもう一度アクセスしていただけないでしょうか?
よろしくお願いします。
確かに過程を考え理解することは大切だと思っています。
やはり結果が出ないと後先不安でもありますので。。。
本当に申し訳ありません。
http://www.geocities.jp/nagasakalab/
0602デフォルトの名無しさん
2009/10/18(日) 20:50:09知りたいのは、どこが分かってないかだ。そこを自分で明確にしないとな。
全部最初から分かんないじゃどうしようもないぜ。
0603デフォルトの名無しさん
2009/10/18(日) 20:58:32ペイントでやるなら、たとえば塗りつぶした長方形一つだけ描いて2枚目には
少しずらして描いて、差分取ってみ。塗りつぶす色がいろんな場合もやってみるといいかもな。
結果が良くわかんなかったら、その結果画像もアップしといたら
議論しやすいんじゃない?
0604デフォルトの名無しさん
2009/10/18(日) 21:18:080605デフォルトの名無しさん
2009/10/18(日) 21:22:36「cvAbsDiff関数がどういうことをしているかを画素レベルで説明しなさい。」
0606デフォルトの名無しさん
2009/10/19(月) 06:11:100607デフォルトの名無しさん
2009/10/19(月) 10:46:560608デフォルトの名無しさん
2009/10/19(月) 11:40:09やることがわかってるんなら自分でやれ。
差分をとって色を変換。それを元画像に重ね合わせ。
ここら辺はOpenCVなら関数一つづつでできるような簡単なもの。それを調べもせずに人に頼るなよ。
0609デフォルトの名無しさん
2009/10/19(月) 14:04:14皆に分からないぞ。
例えば1ピクセルおきの格子状の画像があって、それが撮影の誤差で2枚目で
1ピクセルずれたとすると、人間の目には差が無いように見えるが差分を
取ると大きな違いが出てくる。
0610デフォルトの名無しさん
2009/10/19(月) 14:59:21haar cascadeのxmlファイルは、
CPUやOSの違いやOpenCVのバージョンの違いがあっても同じように利用できるものなのでしょうか?
(なお、WindowsのOpenCV2.0のサンプルのhaarcascade_frontalface_alt.xml
とLinuxのOpenCV1.0のそれとは全く同一でした。)
というのも、このサイトでダウンロードした、
http://gihyo.jp/dev/feature/01/opencv/0004?page=1
gihyo_logo.xmlをLinux上のOpenCV1.0で利用すると
http://gihyo.jp/dev/feature/01/opencv/0004?page=4
の画像にあるような検出は全くされず大変精度が低くて
使い物にならなかったためです。
(エラーなどはなく検出処理自体は問題なくできています。)
0611デフォルトの名無しさん
2009/10/19(月) 15:04:33HPにゲストブック機能をつけました。
皆様のご意見はそちらでお願いします。
今までこちらの貴重なスペースをお借りして
本当にありがとうございました。
http://www.geocities.jp/nagasakalab/
0612デフォルトの名無しさん
2009/10/19(月) 19:48:340613デフォルトの名無しさん
2009/10/19(月) 19:54:42できるんじゃない?同じXMLデータなんだから。そのデータの扱い方だって
バージョンによって違うとは思えない。
0614565
2009/10/20(火) 17:02:33デバイスマネージャでは2つとも認識されています
ポート変えましたけど駄目でした
>>567
↓のようにコードを作成したのですが、"カメラ2が見つかりません"となり、2つめのカメラを認識しません
if ( ( capture = cvCreateCameraCapture(0) ) == NULL ) {
printf( "カメラが見つかりません\n" );
return -1;
}
if ( ( capture2 = cvCreateCameraCapture(1) ) == NULL ) {
printf( "カメラ2が見つかりません" );
return -1;
}
0615デフォルトの名無しさん
2009/10/20(火) 20:50:55WEBカメラから読み込んだ動画が、上下左右にずれてしまっています。ずれたぶんは451どうよう左と上から表示されます。
ずれの大きさについては毎度ランダムで、稀にずれは無く表示されることもあります。
別のカメラを購入して試す前に、何かしらの手段はないでしょうか。
過去ログみても、解決策でてないきがする・・
0616デフォルトの名無しさん
2009/10/20(火) 21:14:18メシ二回分ほどでカメラくらい買えるだろ
ログみてるヒマあったら買ってくればよかったじゃないかアホかこいつ
0617デフォルトの名無しさん
2009/10/21(水) 01:15:20linuxなら
cvCreateCameraCapture(CV_CAP_V4L + 0)
cvCreateCameraCapture(CV_CAP_V4L + 1)
で複数動く
0618デフォルトの名無しさん
2009/10/21(水) 13:25:262値化画像渡して輪郭取得したところ、なんか変なノイズが入るのは何が思い当たりますでしょうかー
チャンネル数は合ってると思います・・・ぬーん
http://up3.viploader.net/pc/src/vlpc000827.jpg
0619デフォルトの名無しさん
2009/10/21(水) 13:37:300620デフォルトの名無しさん
2009/10/21(水) 13:40:51それだけ見せられても困る。
せめて該当部分のコードがないと
0621デフォルトの名無しさん
2009/10/21(水) 13:41:23渡すチャンネル数がやっぱり合って無かったですOTL
(drawcontoursを1で処理してました・・・)
0622デフォルトの名無しさん
2009/10/21(水) 13:47:120623デフォルトの名無しさん
2009/10/21(水) 14:08:090625デフォルトの名無しさん
2009/10/21(水) 23:09:50数日計算しても、正しい検出がほとんどできません。
ほんとにこれで使える haar cascadeのファイル作れるの?
実際使えるのを作れた方いらっしゃいます?
コツを教えてください。
0626デフォルトの名無しさん
2009/10/22(木) 03:10:29[2] bmpで保存した静止画ファイル(の画像)
・・・があるとき、[1]の中から[2]を探す処理をしたいと思っています。
cvMatchTemplate() が最も目的に近いと思いますが、
第1引数([1]相当)のCvArr*を準備するにはどのような方法があるでしょうか?
いったんファイルに保存して、vcLoadImage()するしかないですか?(まさか・・・ね
0627デフォルトの名無しさん
2009/10/22(木) 09:12:39認識させたい画像の集合に問題があるんじゃないか?
極端に違ったものをポジ画像に混ぜると、いい結果が出ないんじゃないだろうか。
また、ネガ画像にポジ画像と同じようなものが混じっていると、よくないと思う。
この手法に限らず、学習に使う画像の枚数を単純に増やせばいいわけではなく、ポジ画像とネガ画像の集合の性質に依存していると思うが。。。
0628デフォルトの名無しさん
2009/10/22(木) 09:47:06ポジ画像は多ければ多いほどいい(ツールで自動生成したやつでもOK)が
ネガ画像は数10枚でも工夫すれば十分いけたぞ
ネガ画像は最初は壁とか平坦なもの(数枚でもいいはず)でやってみ
学習認識させるものは何なの?
0629デフォルトの名無しさん
2009/10/22(木) 10:00:37詳しいサイトとかないの?
0630デフォルトの名無しさん
2009/10/22(木) 10:33:42ありがとうございます。
使えるものであることわかっただけでちょっと安心いたしました。
特定の書籍の表紙を認識させたいと取り組んでいます。
表紙内にある出版社のロゴ部分や、表紙全体で haar training をさせてxml
を作ったのですが、どちらも精度が低く使い物にならないという状況なんです。
ネガ画像は、http://gihyo.jp/dev/feature/01/opencv/0004?page=1
でダウンロードしたもの+αで、3000枚なのですが、
ポイントはネガ画像のコレクションにありそうですね。他のネガ画像でやってみようと
思います。
本当にありがとうございます。
0631デフォルトの名無しさん
2009/10/22(木) 10:40:280632デフォルトの名無しさん
2009/10/22(木) 18:24:51detectionでやることじゃない気がする
0633デフォルトの名無しさん
2009/10/22(木) 18:46:17ttp://d.hatena.ne.jp/ninoseki/20090212
こんな風にさ
0634デフォルトの名無しさん
2009/10/22(木) 20:15:17WindowsXP + OpenCV1.1 + VC++2008 で以下の画像処理を試みているのですが、
アルゴリズムが思いつかず、ご教授いただきたく思い質問させていただきます。
静止画像の中に、不特定数の物体があり、物体は様々な角度を向き、
撮影距離も不特定なため様々な大きさです。
また、撮影場所も不定なため、不要なノイズが入る可能性が高いです。
ここで物体は、単色で塗られた一定サイズの正方形を2つ組み合わせた
小さな長方形状の用紙で、この2色の色を識別することを目的としています。
OpenCVを用いて長方形(含、角度のついた台形)を検出し、
その長方形内が2色(ある程度は撮影誤差として許容)であれば、
物体が映っているものとして色を検出しようかと考えているのですが、
長方形の検出に適している手法をご存知でしたら
ご教授願えないでしょうか。
また、改良案等ございましたらご指摘いただけたら大変嬉しいです。
乱文なため説明不足等あるかもしれず申し訳ないですが、
なにとぞよろしくお願いします。
0635デフォルトの名無しさん
2009/10/22(木) 22:43:470636デフォルトの名無しさん
2009/10/23(金) 14:45:49用途がよくわからんが、何らかの特徴点検出と色情報による識別を組み合わせて
何とかなるかな???
具体的にどんな画像から検出したいんでしょう?
0637デフォルトの名無しさん
2009/10/23(金) 17:00:350638デフォルトの名無しさん
2009/10/23(金) 17:35:56中国が6億円かけて開発したけど失敗した
>>398,399
0639デフォルトの名無しさん
2009/10/23(金) 19:11:36俺好みの体位だけを抽出したい
0640634
2009/10/23(金) 19:35:20>>635
OpenCVもしくは何らかの手法で四角形を抽出したいのです。
ハフ変換等で矩形抽出や線抽出は調べましたが、
その方向では実現できそうになくご教授願いに参りました。
>>636
説明下手で申し訳ございません。
守秘義務が関わっており、重点は伏せなければならず、
非常に心苦しいです。
許可を取れた範囲でご説明します。
サンプルのリストを以下に挙げます。
お手間をおかけしますがパス[cv]で設定しております。
ttp://www1.axfc.net/uploader/Img/so/63011
このような形の2色1組と周囲のグレーを利用し、
「カメレオンコード」に似たシステムを
実装したいと考えています。
実際の撮影物にハフ変換や矩形抽出を試みましたが、
良い結果が得られませんでした。
なにとぞご教授のほど、よろしくお願いします。
0641デフォルトの名無しさん
2009/10/23(金) 21:00:23ならカメレオンコード(特許出願中)の愛知の会社と業務提携したらいいんじゃね
0642デフォルトの名無しさん
2009/10/23(金) 21:24:22どうしてもOpenCVのAPIを使ってやるという宿題かと思ったよ
画像処理スレで質問しなおせば
0643デフォルトの名無しさん
2009/10/24(土) 00:28:290644デフォルトの名無しさん
2009/10/24(土) 03:38:30QRコードの読み取りの方法も参考になるかな
0645デフォルトの名無しさん
2009/10/24(土) 06:29:59どこかにコードがあるんでしょうか?
0646デフォルトの名無しさん
2009/10/24(土) 08:05:01デコードでぐぐr
0647デフォルトの名無しさん
2009/10/24(土) 21:19:13井村さんのだとラベル数が多くなったりすると0.4〜0.5秒かかることがあるんだが
0648名無し募集中。。。
2009/10/25(日) 06:37:22http://code.google.com/p/cvblob/
0649デフォルトの名無しさん
2009/10/25(日) 10:57:25画像サイズ、ラベル数、計算環境がわからないが
10,000×10,000ピクセルの画像でラベルの数が10万くらい、ひと昔前のオンボロPCという環境だと
0.5秒かかっても仕方ないのでは
0650デフォルトの名無しさん
2009/10/26(月) 23:08:43ttp://gihyo.jp/dev/feature/01/opencv/0004?page=2]
の正解リストファイル(OK.txt)の記述で、
120 100 45 45
100 200 50 50 50 30 25 25
45 55 60 60
・・・
のように縦横サイズが違う場合、例えば
createsamples.exe haartraining.exe で指定する -w -h
の大きさは、どのように考えれば良いでしょうか?
例えば、リスト内の平均値をとって 1/2 する・・・という
方法でしょうか?
もう1点、上の例では画像の縦横比は 1:1 ですが、
120 100 100 50
45 55 50 75
・・・
のように縦横比が違う正解領域の場合、
createsamples.exe haartraining.exe で指定する -w -h
の大きさは、どのように考えればよいでしょうか?
縦横比を変えた -w -h を指定すると、
認識精度が劇的に落ちる印象があります。
0651デフォルトの名無しさん
2009/10/27(火) 16:20:20-w -hで指定したサイズにリサイズします。
だから、後段の学習(haartraining.exe)の処理には、
リサイズ後のサイズを指定することになります。
ということで、結論的には、createsamples.exe、
haartraining.exeのそれぞれの-w -hには同じ値が指定される
ことになります。
しかし、リサイズされる前の元の画像の指定領域の縦横比が
極端に違っていると、createsamples.exe時のリサイズで、
意図したかたちとはかけ離れた結果になってしまうのではない
でしょうか?
一般的な例では、認識させたいオブジェクトが中央にくるような
1:1の矩形で指定することが多いようですが。
目などを認識させたい場合には、2:1の横長にするなどの例も
あると思います。
0652デフォルトの名無しさん
2009/10/27(火) 22:27:030653650
2009/10/27(火) 22:52:32ありがとうございます。
リサイズされるのは -show で確認しているので理解しています。実は、
ttp://gihyo.jp/dev/feature/01/opencv/0004?page=3
にあるように、createsamples.exe -img gihyo_logo.png のように
1枚の正解画像から、学習用データを作成した場合は、
ttp://gihyo.jp/dev/feature/01/opencv/0004?page=4
と同じような精度の結果が得られました。
ただ、全く同じデータに対して
ttp://gihyo.jp/dev/feature/01/opencv/0004?page=2
にあるように、1枚の正解画像からではなく
正解画像リストファイル(上のページではOK.txt)から
学習用データを作成した場合、全く認識できていません。
1枚の正解画像からたくさんの学習用サンプルを作る際は、
背景データに対して、正解画像を回転させながら貼り付けるデータを
自動作成できるようですが、リストファイルの場合、
それができていないようです。
0654デフォルトの名無しさん
2009/10/28(水) 03:53:33>120 100 100 50
>45 55 50 75
>・・・
縦横比が2:1と2:3と極端にことなっているのが問題ないんじゃないかと
ほぼ同じくらいになっていないとうまくいかないと思うのですが。。
画像にもよりますが
>>653
>1枚の正解画像からたくさんの学習用サンプルを作る際は、
>背景データに対して、正解画像を回転させながら貼り付けるデータを
>自動作成できるようですが、リストファイルの場合、
>それができていないようです。
ttp://gihyo.jp/dev/feature/01/opencv/0004
に2通りの方法と書いてあるとおり、1枚から回転などして画像を作成
して使用する方法と、複数の画像を使う方法は別の方法です。
(組み合わせて使う方法があるのかも知れませんが、例が見つかりません)
0655デフォルトの名無しさん
2009/10/29(木) 00:15:32画像を読ませる方法はありませんか?
adaptors.pyがダメダメなのでcvSetDataなどでやってみたのですが
ダメでした。
OpenCV自体をリコンパイルすればいけるような記事も
見たのですがそこまで出来る環境ではないので
別の方法を探しています。
0656デフォルトの名無しさん
2009/10/30(金) 11:59:11C:\OpenCV\interfaces\swig\python\build\lib.win32-2.5\opencv
python2.6用はOpenCV_1.1pre1a.exe
C:\OpenCV\interfaces\swig\python\build\lib.win32-2.6\opencv
0657デフォルトの名無しさん
2009/11/08(日) 01:16:390658655
2009/11/08(日) 01:31:32CVtypesを使用することにしました。
SWIG版は制約やバグが多すぎます。
CVtypesも早々にCvMatの間違いが見つかりましたが
DLLを直接操作できるので安心出来ます。
とりあえずPIL, wxPythonの画像相互変換できました。
>>656
バージョンはあっています。opencv.jpのオプティカルフローサンプルを
SWIG版で実行できています。
adaptors.pyが1.0で実行できている方がいらっしゃるんでしょうか?
0659デフォルトの名無しさん
2009/11/10(火) 17:37:45少し結果がでたので報告させていただきます。
これからの課題も考えながら卒業研究を進めています。
ご助言をいただけると幸いです。ゲストブックへお願いします。
ttp://www.geocities.jp/nagasakalab/
0660デフォルトの名無しさん
2009/11/12(木) 13:03:30DELLでは正常にできたんですが、LGだとコンパイルすらできなくなります。
// カメラを初期化する
if ( ( capture = cvCreateCameraCapture( -1 ) ) == NULL ) {
// カメラが見つからなかった場合
printf( "カメラが見つかりません\n" );
return -1;
}
上記のcvCreateCameraCapture( -1 )を( 1 )に変えると
コンパイルはできるのですが映像が出力されません。
何が問題なのでしょうか?
0661デフォルトの名無しさん
2009/11/12(木) 13:34:59何がイケナイのでしょうか?
0662デフォルトの名無しさん
2009/11/12(木) 13:47:06ってexeということはWindowsかな
パス通ってる?
0663デフォルトの名無しさん
2009/11/12(木) 13:57:12あんたのあたま。
Pythonの環境構築ができてないのならスレ違い。
Pythonの環境がちゃんと機能しているのなら、単に「動かない」ではなく状況報告を。
0664デフォルトの名無しさん
2009/11/12(木) 14:01:14パソコンのメーカー名いわれても困る。
OSと開発ソフトぐらい書かないと
コンパイルのエラーがでるならどんなエラーが出てるか書け。
映像が出ない方については
あとは使ってるカメラが同じものかパソコンに内蔵カメラは付いてるか?
カメラ付属のソフトではキャプチャできるか?
0665デフォルトの名無しさん
2009/11/12(木) 14:14:56cvCreateCameraCapture( -1 )でコンパイルエラー
cvCreateCameraCapture( 1 )だとエラーが出ない
しかもLGだけ...
LGってパソコン出してたんだ。なんていうパソコン?
0666デフォルトの名無しさん
2009/11/12(木) 14:31:030667名無し募集中。。。
2009/11/12(木) 15:28:49マクロ展開する関数じゃないし
0668デフォルトの名無しさん
2009/11/12(木) 16:32:05差があるんじゃない?
0669デフォルトの名無しさん
2009/11/12(木) 17:23:510670デフォルトの名無しさん
2009/11/12(木) 21:01:24あまりうまい方法が思いつきません。
具体的には、T字形の図形をビーカーのような容器の底面に付けて
それを下から撮影し、回転方向を取得する、と行った感じです。
(位置を取得する必要はなし)
どなたかよいアイデアがあれば、よろしくお願いいたします。
0671デフォルトの名無しさん
2009/11/12(木) 21:57:33TじゃなくてもいいならARToolKitとか使えば短時間でできそうだけど
0672デフォルトの名無しさん
2009/11/13(金) 00:54:38使ってるカメラはLogicoolのAFOrbitで、OSはVista32です。
Mommasさんのところのライブラリ書き換え等も試したのですが一向に変わらず解像度が落ちません。
これは一体何が原因でしょうか……
0673デフォルトの名無しさん
2009/11/13(金) 02:23:51せめてその指定してる行くらい載せないとわからないよ
つかcvSetPropertyじゃなくてcvcamSetProperty?
もしそうなら、もうcvcam使わないほうがいいと思うが
0674デフォルトの名無しさん
2009/11/13(金) 02:45:19仕方が無いので自分で作ろうと思ったのですが
エピポーラ線を算出する方法
対応点探しのテンプレートマッチングの時に画像の歪みを補整する方法
が分かりません
特に2つ目に関しては最初に画像全体を補整しようかとも思ったのですがデータの欠損が心配なので探索範囲のみを補整しようかと思っています
良い案があればご教授お願いします
0675672
2009/11/13(金) 10:10:22すみません、関数名間違えてました。
cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_WIDTH, 320);
cvSetCaptureProperty (capture, CV_CAP_PROP_FRAME_HEIGHT, 240);
です。
デスクトップ(XP)だときちんと解像度が変わるのですがノート(Vista32)だとブレーク入れて値参照しても640*480のままで・・・
OS依存?なんでしょうか、後の違いと言えばlogicoolのソフトのバージョンぐらいです。
0676デフォルトの名無しさん
2009/11/13(金) 12:45:23673ですが、openCVのDLLのバージョンが違うとかない?
cvSetCapturePropertyでググレば出てくるけどサイズ変更はopenCV1.0では未実装っぽいけど
Mommas氏云々って書いてあるが、多分そのページの解説なら
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_320x240, 0);では?
それでその修正を加えたデスクトップとノートのopenCVのDLLが違うんじゃないの
openCVはソースあるのだからデバッグ情報を出力するバージョンを作って追っかければいいよ
0677デフォルトの名無しさん
2009/11/13(金) 17:03:06openCVで手元にあるaviファイルを読み込んで動画処理しているのですが、aviファイルって結構重いですよね。
そこで、aviファイルをサーバに置いといて、それにアクセスして読み込ませたいのですが、不可能でしょうか?
0678デフォルトの名無しさん
2009/11/13(金) 17:24:310679デフォルトの名無しさん
2009/11/13(金) 17:24:400680デフォルトの名無しさん
2009/11/13(金) 17:53:370681デフォルトの名無しさん
2009/11/14(土) 02:09:17ウィンドウズならエクスプローラでネットワークドライブ化すればできるぞ。
0682デフォルトの名無しさん
2009/11/14(土) 10:10:32転送時間のオーバーヘッドもある
0683デフォルトの名無しさん
2009/11/14(土) 22:04:30ネットワークドライブは作ってあるので、試しにそこにおいてある画像を読み込ませたいと思います。
0684673
2009/11/16(月) 17:38:55レス遅れてすみません。
デスクトップの方はそもそもcvSetCapturePropertyが正常に機能します。
ノートの方はMommas氏が書かれている方法を採っても値が変わらず、解像度等が変化しませんでした。
また、DLLはバージョンが1.0.0.1で同じでした。
ノートの方はcvResizeで無理やり変換しようと思います。
何度もありがとうございましたTT
0685デフォルトの名無しさん
2009/11/18(水) 09:56:29複数の輪郭を抽出し,一つ一つの輪郭に対して囲まれている領域(閉じている領域)全ての座標値が知りたいのですが,何か良い方法はありますか?
0686デフォルトの名無しさん
2009/11/18(水) 10:42:29cvFindContoursで輪郭とって中身を見ていけばいいかと
0687デフォルトの名無しさん
2009/11/18(水) 14:09:20テンプレートマッチングでテンプレート画像を4つに増やしてマッチングを行って
結果を一致度で表すプログラムを作りたいのですが、わかりやすく教えてもらえますか?
0688デフォルトの名無しさん
2009/11/18(水) 14:35:59先ずはテンプレートマッチングのプログラムを作ってみてください。話はそれからでしょう。
0689デフォルトの名無しさん
2009/11/18(水) 17:13:470690デフォルトの名無しさん
2009/11/18(水) 17:26:30#include <highgui.h>
#include <stdio.h>
intmain (int argc, char **argv){
char text[16];
int i;
double result[3];
CvFont font;
IplImage *src_img1, *src_img2;
IplImage *dst_img[3];
if (argc != 3 ||
(src_img1 = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE)) == 0 ||
(src_img2 = cvLoadImage (argv[2], CV_LOAD_IMAGE_GRAYSCALE)) == 0)
return -1;
for (i = 0; i < 3; i++) {
dst_img[i] = (IplImage *) cvClone (src_img2);
}
0691デフォルトの名無しさん
2009/11/18(水) 17:28:04#include <highgui.h>
#include <stdio.h>
intmain (int argc, char **argv){
char text[16];
int i;
double result[3];
CvFont font;
IplImage *src_img1, *src_img2;
IplImage *dst_img[3];
if (argc != 3 ||
(src_img1 = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE)) == 0 ||
(src_img2 = cvLoadImage (argv[2], CV_LOAD_IMAGE_GRAYSCALE)) == 0)
return -1;
for (i = 0; i < 3; i++) {
dst_img[i] = (IplImage *) cvClone (src_img2);
}
0692デフォルトの名無しさん
2009/11/18(水) 17:28:57result[0] = cvMatchShapes (src_img1, src_img2, CV_CONTOURS_MATCH_I1, 0);
result[1] = cvMatchShapes (src_img1, src_img2, CV_CONTOURS_MATCH_I2, 0);
result[2] = cvMatchShapes (src_img1, src_img2, CV_CONTOURS_MATCH_I3, 0);
// (2)形状マッチングの結果を画像に描画
for (i = 0; i < 3; i++) {
snprintf (text, 16, "%.5f", result[i]);
cvInitFont (&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0, 0, 4, 8);
cvPutText (dst_img[i], text, cvPoint (10, dst_img[i]->height - 10), &font, cvScalarAll (0));
} // (3)入力画像1と3種類の値が書き込まれた入力画像2を表示し,何かキーが押されるまで待つ
cvNamedWindow ("Image1", CV_WINDOW_AUTOSIZE);
cvNamedWindow ("Image2a", CV_WINDOW_AUTOSIZE);
cvNamedWindow ("Image2b", CV_WINDOW_AUTOSIZE);
cvNamedWindow ("Image2c", CV_WINDOW_AUTOSIZE);
cvShowImage ("Image1", src_img1);
cvShowImage ("Image2a", dst_img[0]);
cvShowImage ("Image2b", dst_img[1]);
cvShowImage ("Image2c", dst_img[2]);
cvWaitKey (0);
cvDestroyWindow ("Image1");
cvDestroyWindow ("Image2a");
cvDestroyWindow ("Image2b");
cvDestroyWindow ("Image2c");
cvReleaseImage (&src_img1);
cvReleaseImage (&src_img2);
cvReleaseImage (&dst_img[0]);
cvReleaseImage (&dst_img[1]);
cvReleaseImage (&dst_img[2]);
return 0;
}
0693デフォルトの名無しさん
2009/11/18(水) 17:31:02上のプログラムはopencvのマッチングのサンプルなんですが
一致度を示すプログラムと
一致度の表示部分を教えてください。
0694デフォルトの名無しさん
2009/11/18(水) 17:39:47とりあえず日本語のリファレンスマニュアルぐらい読め。
どうせこのコードに使われている関数はほぼ使うんだから
それと最初のレス番を名前欄にかいてくれ
0695デフォルトの名無しさん
2009/11/18(水) 19:03:290696デフォルトの名無しさん
2009/11/18(水) 19:11:502chに書き込む暇はあるのにな
0697デフォルトの名無しさん
2009/11/18(水) 19:12:09⊂(・∀・ )つ-、 できたら言ってね〜
/// /_/:::::/
|:::|/⊂ヽノ|:::| /」
/ ̄ ̄旦 ̄ ̄ ̄/|
/______/ | |
| |-----------| |
0698デフォルトの名無しさん
2009/11/19(木) 11:49:580699685
2009/11/19(木) 11:58:42cvFindContoursで取った輪郭からは輪郭線の座標値しか取り出せないと思っていたのですが。
そうではなくてその輪郭線で囲まれた全ての座標値,つまり輪郭で型取られた物体の全ての座標がほしいです。
0700デフォルトの名無しさん
2009/11/19(木) 12:10:08塗りつぶして全座標をチェックすりゃいいんじゃね。
cvFindContoursで得た輪郭なら元画像がすでにそうなってる(2値化)気もするが
0701デフォルトの名無しさん
2009/11/19(木) 12:57:06IplImageとBITMAPの相互変換って可能ですか?
0702デフォルトの名無しさん
2009/11/19(木) 13:09:540703デフォルトの名無しさん
2009/11/19(木) 13:28:19drawcontourの引数で塗りつぶすオプションにして、それ出力したIpl構造体スキャンすればよくね?
0705名無し募集中。。。
2009/11/23(月) 18:12:35XPモードにインストールしてインストールイメージをコピーすれば・・・
いい加減にIPPにしろと言われそうだな(笑
0706デフォルトの名無しさん
2009/11/24(火) 03:46:51皆目、見当がつかず困っていまして・・・
0707デフォルトの名無しさん
2009/11/24(火) 05:32:510708デフォルトの名無しさん
2009/11/24(火) 08:08:410709デフォルトの名無しさん
2009/11/24(火) 08:30:100710デフォルトの名無しさん
2009/11/24(火) 20:38:48MSのIronRubyチームはそんな感じのことしてたらしいね。
0711デフォルトの名無しさん
2009/11/25(水) 14:47:00たびたび失礼いたします。
鳥瞰図を真上から表示するには、
アフィン変換か射影変換、どちらが適しているのでしょうか?
また画像の頂点座標を求めなくてはならないのでしょうか?
ご意見よろしくお願いします。
0712デフォルトの名無しさん
2009/11/25(水) 19:53:42画像処理の本、一冊ぐらい読んでからやった方がいいんじゃないか?
0713デフォルトの名無しさん
2009/11/25(水) 20:25:59(それぞれのメリットデメリット調べて書く)
0714デフォルトの名無しさん
2009/11/25(水) 21:42:490715デフォルトの名無しさん
2009/11/25(水) 23:06:281台は画像を取り込む事が出来たのですが二台目が出来ません
OpenCVでは複数台のカメラからの取得は無理なのでしょうか?
0716デフォルトの名無しさん
2009/11/25(水) 23:39:580717デフォルトの名無しさん
2009/11/26(木) 20:33:02選択したあともcaptureがNULLになったままで困っています
そのカメラはムービーメーカーや専用ソフトでも反応はしているのですが…
何か原因などありましたら教えてください
0718デフォルトの名無しさん
2009/11/26(木) 23:46:200719デフォルトの名無しさん
2009/11/27(金) 00:03:08-1が返ってきて終了します
別のカメラだと正常に動作するのでコードの問題ではないような気がします
OpenCVでは使えないカメラなのかもしれません
#include <stdio.h>
#include <highgui.h>
int main(void){
int key;
CvCapture *capture;
IplImage *frameImage;
capture = cvCaptureFromCAM(-1);
if (capture == NULL ) {
printf( "カメラが見つかりません\n" );
return -1;
}
cvNamedWindow("Image", CV_WINDOW_AUTOSIZE );
while ( 1 ) {
frameImage = cvQueryFrame( capture );
cvShowImage("Image", frameImage );
key = cvWaitKey( 1 );
if ( key == 'q' ) {
break;
}
}
cvReleaseCapture( &capture );
cvDestroyWindow( windowNameCapture );
return 0;
}
0720デフォルトの名無しさん
2009/11/27(金) 04:03:25なんでカメラの機種名を書かないの?
0721デフォルトの名無しさん
2009/11/27(金) 06:39:00みたなののほうが見やすいよな
0722デフォルトの名無しさん
2009/11/27(金) 07:55:440723デフォルトの名無しさん
2009/11/27(金) 10:29:050724デフォルトの名無しさん
2009/11/27(金) 23:02:22つOpenCvSharp
ttp://code.google.com/p/opencvsharp/
0725デフォルトの名無しさん
2009/11/27(金) 23:10:57OpenCVでは使えないカメラかもしれないってどういうことだ?
その2台目のカメラ一台で認識されるかは試した?
0726デフォルトの名無しさん
2009/11/28(土) 00:06:34業務用のカメラなのか。まあ相性はあるかもね。
(ドライバーの実装が完全じゃないことがあるし)
公式のSDKあるようだから使えばいいんじゃ?
RGB24bitに変換してIplImageのバッファにmemcpyすればいいっしょ。
http://www.argocorp.com/cam/usb2/lumenera/lu/Software/Lucam_sdk/Lucam_sdk.html
0727デフォルトの名無しさん
2009/11/28(土) 15:24:21試してみました 認識されています
>>726
なるほど、その方向で試してみます。
0728デフォルトの名無しさん
2009/11/28(土) 15:26:07USBカメラの映像を取得するプログラムがうまく動きません
でも、まったく動かないわけではなく、たまに(ソースを変更して無くても)うまくいきます
具体的にはうまくいくとき→ちゃんと映像が表示される
失敗するとき→真っ黒の画面に色の付いたドットが10個ぐらい並ぶ
って感じです
カメラの起動(?)に時間がかかるのかと思い途中にSleepを入れてみても改善しませんでした
また、他のデバイス(SCFH、HPwebcam(USBカメラの映像を加工するソフト))を指定した場合はうまく動作しました。
切り分けのためにC++で試そうとも思ったのですが、VC++を使ったことが無くコンパイルすら通らない状態です
ソースは
ttp://www1.axfc.net/uploader/Sc/so/58903.txt
に上げておきました
どのようにすれば確実に動くのでしょうか?
0729デフォルトの名無しさん
2009/11/28(土) 15:36:37Sleepの時間を長めにして、待機する所をいろいろ変えてみたところ
CvCapture capture = CvCapture.FromCamera(0);
System.Threading.Thread.Sleep(500);
とするとかなり確実に動作するようになりました(でもたまーに失敗する)
実用上問題ないので、コレで行きます
ご迷惑おかけしました
0730デフォルトの名無しさん
2009/11/28(土) 15:53:050731デフォルトの名無しさん
2009/11/29(日) 17:15:14cvCreateImage(cvSize(16384, 16384), IPL_DEPTH_8U, 1);
のようにピクセル指定では 16384ピクセル×16384ピクセル 以上は作成できないみたいですが
それ以上のピクセルサイズを扱う方法はないでしょうか?
cvLoadImage("ファイル名", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
では、それ以上でもロードできました。
0732デフォルトの名無しさん
2009/11/30(月) 01:00:540733デフォルトの名無しさん
2009/11/30(月) 10:02:31cvLoadImageの中でcvCreateImage使ってるようだが
0734デフォルトの名無しさん
2009/11/30(月) 10:43:25Win32の1プロセスは2GBまでということなので
他の用途に確保した部分とあわせて、そこらへんの制限にかかってるのかな?
0735デフォルトの名無しさん
2009/11/30(月) 10:50:590736デフォルトの名無しさん
2009/11/30(月) 11:24:51またメモリーが足りなければOut of Memoryのエラーがでるはず
2.0だと例外投げるように変わってるのかな?
どっちにしろ>>731とは違う話かと
0737デフォルトの名無しさん
2009/11/30(月) 15:23:122値化した画像の白い画素(255,255,255)の量を行単位,列単位で調べたいんですが
何かいい関数とかありますか?
0738デフォルトの名無しさん
2009/11/30(月) 15:29:140739デフォルトの名無しさん
2009/11/30(月) 15:56:57cvReduceがそうじゃないか
0740デフォルトの名無しさん
2009/12/01(火) 18:58:280741デフォルトの名無しさん
2009/12/01(火) 19:11:03cvGetReal2Dで全行列調べればおk
0742デフォルトの名無しさん
2009/12/01(火) 19:16:5516以上入れちゃだめなの?
CV_GAUSSIAN,CV_BLUR,CV_BLUR_NO_SCALE,CV_MEDIAN
で確認
0743デフォルトの名無しさん
2009/12/02(水) 09:26:15haartrainingの学習がステージ8で止まってしまいます。
条件
ポジティブ画像 2429 ネガティブ画像 44548
いずれも 19*19画素のjpgファイル。
ステージ7までは1時間弱で進んだのですが、そこから先は、12時間以上たっても
学習が進みません。
http://gihyo.jp/dev/feature/01/opencv/0004
↑で取り上げられている学習は、2,30分ほどで終わったのですが。
0744743
2009/12/02(水) 10:51:05ネガティブ画像
×44548
○4548
OS:vista64bit CPU Core2Duo [email protected]
haartrainingは時間がかかるので、マルチコア+x64対応でコンパイルしてみた。
さっきのCMUも、少しは学習速度が上がったかな?
0745デフォルトの名無しさん
2009/12/02(水) 14:22:21普通に
./configure
make install
だけじゃだめなのか
0746デフォルトの名無しさん
2009/12/02(水) 14:48:41データに対して条件が厳しいと終わらなくなる。
>>745
http://opencv.willowgarage.com/wiki/InstallGuide_Linux
0747デフォルトの名無しさん
2009/12/02(水) 15:17:10大きさとか角度とかばらばらな場合はどうやるのが一番いいんですかね?
0748デフォルトの名無しさん
2009/12/03(木) 14:54:17顔方向推定して方向ごとの顔検出器で顔の位置と大きさと角度を検出して
それから目の検出をすればでできると思うけど。
OpenCVを使えば簡単にできますという内容ではないな。
0749デフォルトの名無しさん
2009/12/03(木) 16:31:41http://www.codeproject.com/KB/cpp/TrackEye.aspx
じゃ不十分なのか?
0750デフォルトの名無しさん
2009/12/03(木) 18:28:13http://gihyo.jp/dev/feature/01/opencv/0004
↑で、正解7,000 誤り 3,000画像で学習してみたら、
win32でコンパイルしたオブジェクト検出ファイルだと、
検出箇所が少なく出ますが、x64でコンパイルしたら、
異常なほど検出されています。
libファイルは、win32とx64で、それぞれの環境でコンパイルしたときに
生成されたものを利用していますが、それが原因なのでしょうか?
順に、表紙win32,x64,数冊win32,x64
http://www.dotup.org/uploda/www.dotup.org419355.jpg.html
http://www.dotup.org/uploda/www.dotup.org419358.jpg.html
http://www.dotup.org/uploda/www.dotup.org419360.jpg.html
http://www.dotup.org/uploda/www.dotup.org419361.jpg.html
0751デフォルトの名無しさん
2009/12/03(木) 18:32:29thx
確かに、学習画像の解像度が低かったり、変わり映えのしない
画像が多かったかも。
顔検出とかをやってみると、壁のシミや木の枝とかの
偽陽性検出が発生することがしばしばあるんで、
そのあたりも入れてみようかなー。
0752デフォルトの名無しさん
2009/12/04(金) 01:11:10せめてコンパイラーのバージョンくらいは書いてくれよ
0753デフォルトの名無しさん
2009/12/04(金) 17:43:27検出したい画像だけに含まれる特徴を自分で考えて、誤り画像にはそれが含まれないようなのを
意識的に増やすとうまくいくんじゃないか?
例えばある文字を検出したいとして、他の文字にも引っかかるんだったら、その違う文字を誤り画像
として多く入れとくとか。
0754デフォルトの名無しさん
2009/12/04(金) 17:50:311、 画像学習をする
2、 検出結果の画像中で正解のところをクリックしたら、その他の誤り検出領域を画像として書き出す
3、 書き出された画像を誤り画像に追加する
4、 1に戻ってやり直し
0755デフォルトの名無しさん
2009/12/05(土) 03:45:39▼のような矩形の場合、例えば以下のようなプログラムで取得できますが
double area;
IplImage *img = 0;
CvMemStorage *storage = cvCreateMemStorage (0);
CvSeq *points;
CvPoint pt;
points = cvCreateSeq (CV_SEQ_POLYLINE, sizeof (CvSeq), sizeof (CvPoint), storage);
pt.x = 79;
pt.y = 59;
cvSeqPush(points, &pt);
pt.x = 132;
pt.y = 112;
cvSeqPush(points, &pt);
pt.x = 174;
pt.y = 46;
cvSeqPush(points, &pt);
area = cvContourArea (points, CV_WHOLE_SEQ);
0756デフォルトの名無しさん
2009/12/05(土) 03:48:36▲ のような輪郭がクロスするような形状の場合、輪郭内の面積をうまく取得できません。
何か、良い方法があれば教えてください。
double area;
IplImage *img = 0;
CvMemStorage *storage = cvCreateMemStorage (0);
CvSeq *points;
CvPoint pt;
points = cvCreateSeq (CV_SEQ_POLYLINE, sizeof (CvSeq), sizeof (CvPoint), storage);
pt.x = 143;
pt.y = 119;
cvSeqPush(points, &pt);
pt.x = 214;
pt.y = 119;
cvSeqPush(points, &pt);
pt.x = 132;
pt.y = 211;
cvSeqPush(points, &pt);
pt.x = 211;
pt.y = 210;
cvSeqPush(points, &pt);
area = cvContourArea (points, CV_WHOLE_SEQ);
0757747
2009/12/05(土) 12:20:11なるほどそういう方法もありますね。
いや目だけじゃなくて手とかいろんなもんを最終的にやりたくて
画像検索ソフトを作ろうと思ってまして、写真を自動的に分類するみたいな
だから出来るだけ多くの情報を拾い出したいわけでして
調べたらheerlerningってので学習させればいいんですね
サンプルを集めろってことなんだけど
画像のどの座標がポジティブでどの座標がネガティブでとか
手作業でやるのは無理っぽいんですがね
せめて画像ビューアーにそういう座標指定機能のついたフリーソフトとかないですかね?
最終的に学習用のテキストファイルとかも出力してくれるような
まあ自分で作ってもいいんだけど
0758デフォルトの名無しさん
2009/12/05(土) 23:14:32まず各線分同士が交差するかをチェック
交差する場合交点を求め新たな頂点とする
各領域で面積を求め足し合わせる
0759デフォルトの名無しさん
2009/12/06(日) 03:31:30簡単に言っているけどかなり難しいよ。
こういうのでしょ。
http://www.eecs.berkeley.edu/Research/Projects/CS/vision/human/index.html
0760デフォルトの名無しさん
2009/12/06(日) 09:49:36いやいやそこまではしませんよ
せいぜい顔の目の相対位置から個人を特定したり
手とか足の位置が分かれば体の場所もわかるから服の色とかも拾えるかなと考えてるだけです
0761デフォルトの名無しさん
2009/12/06(日) 12:19:21それでも実用まで考えるとかなり難しいよ。
顔と目、体全体はOpenCVにサンプルがついているからそのあたりから試せばいい。
OpenCV2.0のdata\haarcascadesにcvHaarDetectObjects()用の学習済みのデータが入っている。
samples\c\peopledetect.cppには歩行者検出のサンプルがある。
0762デフォルトの名無しさん
2009/12/06(日) 14:45:150763デフォルトの名無しさん
2009/12/06(日) 17:19:11Windows7 Ultimate(64bit) +VisualStudio2005の環境で
ttp://wtpage.info/program/opencv.html
の内容にしたがって進めていたのですが
cvhaartrainingのプラットフォームで<新規作成...>を選択
という部分で選択肢にx64の項目が出てきません
これはどうしてなのでしょうか?
0764デフォルトの名無しさん
2009/12/06(日) 17:33:20それはOpenCVに限った話?
普通に新規作成したプロジェクトでも出ないのならスレ違い。
もし自分で作成したプロジェクトでもでなくてかつEEでもなかったら、
VS2005インストール時にデフォルトでは外されてる64bitのチェック入れなかったんだろうけど。
0765デフォルトの名無しさん
2009/12/06(日) 17:37:32自分で作ったものではx64という選択肢はあります
ちなみにEEとは何でしょうか・・・・?
0766デフォルトの名無しさん
2009/12/06(日) 17:44:28おお、素晴らしい
ぜんぜん気づかなかった、これだけあれば十分な気がする
0767デフォルトの名無しさん
2009/12/06(日) 17:52:21ちょっとやってみたけどx64はもう作成済みで、新規作成には出てこないみたいだけど?
新規作成選ぶとこにすでにx64ないか?
0768デフォルトの名無しさん
2009/12/06(日) 17:54:06他のプロジェクトにも一切x64出てこない?
0769デフォルトの名無しさん
2009/12/06(日) 18:02:40おっしゃるとおりでした。今再インストールして64ビットのチェック入れたら
無事に表示されました。ありがとうございました。
0770デフォルトの名無しさん
2009/12/07(月) 00:20:10OpenCV Processing LibraryのjarをEclipceに読み込ませて作っています。
これをjarで固めてLinux上で動かしたいんですが、
LinuxにOpenCVをインストール&パス設定しただけで、動作するものなのでしょうか?
ライブラリのDLLとかもLinux上に上げなければいけないのでしょうか?
0771デフォルトの名無しさん
2009/12/07(月) 00:30:250772デフォルトの名無しさん
2009/12/07(月) 01:11:160773デフォルトの名無しさん
2009/12/13(日) 15:08:42教えていただけないでしょうか。
ttp://opencv.jp/sample/discrete_transforms.html
これは周波数解析ではないですよね?
0774デフォルトの名無しさん
2009/12/15(火) 15:03:39どういった方法が適しているでしょうか?ご教示お願いできませんでしょうか.
0775デフォルトの名無しさん
2009/12/15(火) 18:49:240776デフォルトの名無しさん
2009/12/15(火) 20:39:060777デフォルトの名無しさん
2009/12/15(火) 20:43:320778デフォルトの名無しさん
2009/12/15(火) 21:17:460779デフォルトの名無しさん
2009/12/15(火) 22:14:04各座標を結んでっていうのがどういう風に結ぶのかわからんが普通に矩形描くならcvRectangleでできるはず
0780デフォルトの名無しさん
2009/12/15(火) 23:29:410781デフォルトの名無しさん
2009/12/16(水) 02:53:51ご回答ありがとうございます。
差分処理をした画像を閾値処理するということでよろしいでしょうか。
試したところ、差分処理後の画像は変化後の画像とはまた異なってしまうようなので,
変化があった部分は変化後そのままを表示させたいのですが。
何かよい方法ありますでしょうか?
0782デフォルトの名無しさん
2009/12/16(水) 08:13:15手元にPC無いから慣だけど
0783778
2009/12/16(水) 15:17:020784デフォルトの名無しさん
2009/12/17(木) 17:14:560785デフォルトの名無しさん
2009/12/22(火) 11:09:02限定的に言えばcvExtractMSERを使いたいんだが、引数がイマイチ?で・・・。
0786デフォルトの名無しさん
2009/12/22(火) 11:48:35python ctypes-opencvは2.0でも使えるんだろうか
0787デフォルトの名無しさん
2009/12/24(木) 23:33:27processingでopenCVを動かしたくて、環境を作りました。
とりあえずビデオ画像をcaptureしたかったので
ttp://ubaa.net/shared/processing/opencv/opencv_cascade.html
のコードを動かしてみましたが
描画の窓にカメラの画像が出てきません。
コンパイル自体は通ってるので
おそらくリンカエラーなど、環境構築でミスってることはないと思います。
また、カメラも認識出来ています。
(プログラムを走らせるとカメラのライトが点灯する)
Versionは
processing 1.0.7
OpenCV1.0
OSはVistaです。
どなたか、ご存知の方いらっしゃったらよろしくお願いします。
0788デフォルトの名無しさん
2009/12/25(金) 00:43:30>>728-729
辺りはどうだろうか?
0789デフォルトの名無しさん
2009/12/27(日) 20:42:22レス頂きありがとうございます。
がいしゅつ(なぜか変換ry)だったのですね。
コレを見る限り、
生のOpenCVではcapture用にオブジェクトを生成しているのでしょうか?
Processingに関しては、内部を詳しく確認していないのでわかりませんが
ビデオをキャプチャする際はOpenCVクラスのオブジェクトを生成し、
そのなかのcaptureメソッドを呼んでいるようでしたので
captureメソッドを呼ぶ前にdelay(Sleepと同様)を入れてみました。
がやはりだめでした...
ほかに考えられる原因はどんなものがあるでしょうか?
0790デフォルトの名無しさん
2010/01/01(金) 18:13:38昔はカメラ画像のキャプチャはDirectShowでやって、
それをOpenCVに渡して画像処理していた覚えがある.
0791デフォルトの名無しさん
2010/01/04(月) 00:26:04下のような状態から全く動かなくなってしまいます。
原因に心当たりのある方がいらっしゃったらよろしくお願いします。
Tree Classifier
Stage
+---+---+---+---+---+
| 0| 1| 2| 3| 4|
+---+---+---+---+---+
0---1---2---3---4
Parent node: 4
*** 1 cluster ***
POS: 395 400 0.987500 ←ここから動かない
0792デフォルトの名無しさん
2010/01/04(月) 21:34:16レスありがとうございます。
実はOpenCV2.0はインストール済みなのですが
うまく動かなかったため1.0で試そうとしています。
(リンカエラーがでる。
UnsatifiedLinkError: hypermedia.video.OpenCV.capture(|||)V)
すいません、正直よくわからなかったので、ここは放置していました。
ここがうまくいけば2.0のほうが安定して動作するのでしょうか?
0793デフォルトの名無しさん
2010/01/06(水) 06:03:28このサイトに書いてある方法にのっとって最新版をインストしてビルドしてみると
cv.libがありませんってエラー吐かれるので探してみたのですが、設定等は上記サイトのままで大丈夫だったのですが。
インストし指定したlibフォルダ自体に元からcv.libが入っていなかったみたいなのですが、これは再インストしなおせばいいのでしょうか?
0794デフォルトの名無しさん
2010/01/06(水) 14:47:09>>743 >>746
0795デフォルトの名無しさん
2010/01/06(水) 17:28:01最新版ってのが2,0なら1.1preまでの方法じゃうまくいかんよ。
参考にしたいソースがあるんだったら同じバージョンのやつを落としてきてやった方がいい。
0796デフォルトの名無しさん
2010/01/10(日) 19:53:322.0からはVC用のlibがついてないのでソースコードから自分でコンパイルしないといけない
0797デフォルトの名無しさん
2010/01/16(土) 14:54:35今,読み込んだ動画を画像処理して,ビデオライタで出力しているのですが,フレーム率
の値がおかしな事になっています.
プログラムには,
vw1 = cvCreateVideoWriter("output1.avi", -1, 30, cvSize (f_width, f_height),1);
と記述していて,30フレーム/秒の動画が出力されるはずなのですが,500フレーム/秒の動画
が出力されます. 記述の仕方が間違っているのでしょうか?
0798デフォルトの名無しさん
2010/01/16(土) 20:25:36詳しいことはファイルに書いてあります。
http://www.dotup.org/uploda/www.dotup.org567007.zip.html
環境
OS:Windows
コンパイラ名とバージョン:VisualC++2008
言語:C言語(ライブラリとしてARToolkit、OpenCVを使用しています)
アップローダーのパスワードは8756です。
自力で出来る限りのところまでやってみたのですが限界を感じました。
ご指摘お願い致します。
0799デフォルトの名無しさん
2010/01/16(土) 22:52:110800デフォルトの名無しさん
2010/01/16(土) 23:46:38プロパティで大学と名前わかるなw
0801デフォルトの名無しさん
2010/01/16(土) 23:49:170802デフォルトの名無しさん
2010/01/16(土) 23:53:460803デフォルトの名無しさん
2010/01/16(土) 23:55:330804デフォルトの名無しさん
2010/01/17(日) 00:26:560805デフォルトの名無しさん
2010/01/20(水) 14:27:49Configureを押すと、本来コンパイラの選択に行くらしいのですが、以下のエラー
で止まります。
CMake Error: your C compiler: "bcc32" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "bcc32" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
というエラーが起きます。これらの設定ってどうやればいいでしょうか
あ、環境はXPです。
0806デフォルトの名無しさん
2010/01/20(水) 15:10:40たのが原因みたいでした。一度キャッシュファイルが作られると、ずっと同じ
設定になってしまうようなので、作られたフォルダを削除したら上手くいきました。
0807デフォルトの名無しさん
2010/01/20(水) 16:18:59ロジクールのUSB接続のカメラで表示するプログラムをOpenCV1.0で作成し,正常に動作していたのですが
PCを変更したところ,プログラム自体は動作するのですが,カメラからの入力は一面黒く表示されるようになってしまいました.
プログラムを動かすとカメラも光るので,認識はされていると思うのですが.(>>787さんと同現象かもしれません)
原因などご存知の方いらっしゃいますか?
0808デフォルトの名無しさん
2010/01/20(水) 18:41:29Vistaだったりしませんか?
VistaだとOpenCVはカメラ画像取得方法がちょっと違うやり方でやらないと出来ないので、ぐぐればでてきますよ
質問です
ROIを用いてオプティカルフローを使おうとするとint dx = (int)cvGetReal2D(velx0,i,j)の部分で
one of arguments' values is out of range(index is out of range) in Function cvPtr2Dのエラーがでます。
対処法の方分かる方いらっしゃったら教えてください。
0809デフォルトの名無しさん
2010/01/20(水) 19:02:02失礼しました
0810デフォルトの名無しさん
2010/01/20(水) 20:24:34>>808の人?
0811デフォルトの名無しさん
2010/01/21(木) 14:09:14すいません>>808です
0812デフォルトの名無しさん
2010/01/23(土) 08:10:53ブラウザが落ちるんですが、俺だけ?
0813デフォルトの名無しさん
2010/01/23(土) 10:18:590814デフォルトの名無しさん
2010/01/23(土) 10:52:56使ってるブラウザが悪いんじゃね?何使ってるか知らんが。
0815デフォルトの名無しさん
2010/01/23(土) 20:02:52実用的な関数ってあるんだろうか・・・・
0816デフォルトの名無しさん
2010/01/23(土) 21:34:20Point p;
mat.at<uchar>(p) = ここの部分;
0817デフォルトの名無しさん
2010/01/24(日) 15:39:54エラー吐かれて進めません.
0818デフォルトの名無しさん
2010/01/24(日) 18:23:35学習はとっても時間がかかるよ
0819デフォルトの名無しさん
2010/01/25(月) 15:31:59samples/image.cpp
http://opencv.jp/opencv-2.0svn/cpp/fast_element_access.html
ch分解して,1個ずつでしか触れないみたいね.
vector<cv::Mat> planes;
cv::split( mat, planes );
uchar &value = planes[0].at<uchar>(p.y, p.x);
value = saturate_cast<uchar>(255);
# cv::Mat->data と IplImage->imageData は一致するっぽい
0820デフォルトの名無しさん
2010/01/26(火) 18:28:020821デフォルトの名無しさん
2010/01/26(火) 20:20:07これじゃダメなのか
using namespace cv;
Mat_<Vec3b> img = imread("img1.bmp");
for(int i = 0; i < img.rows; i++)
for(int j = 0; j < img.cols; j++)
img(i,j)[2] ^= (uchar)(i ^ j);
cv::namedWindow("Image", CV_WINDOW_AUTOSIZE);
cv::imshow("Image", img);
cv::waitKey(0);
0822デフォルトの名無しさん
2010/01/26(火) 20:43:22>>820と等価なはず
using namespace cv;
Mat img = imread("img1.bmp");
for(int i = 0; i < img.rows; i++){
for(int j = 0; j < img.cols; j++){
Point p = Point(j,i);
img.at<Vec3b>(p)[0] = saturate_cast<uchar>( img.at<Vec3b>(p)[0] * 6 + 10 );
img.at<Vec3b>(p)[2] = 0;
}
}
0823デフォルトの名無しさん
2010/01/27(水) 14:00:19// ステンシル値格納用配列
buf_stencil = new int[xsize*ysize];
for(int i=0; i<xsize*ysize; i++){
buf_stencil[i] = 0;
}
glReadPixels(0, 0, xsize, ysize, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, buf_stencil);
/*** 配列はbuf_stencil[xsize*(ysize-y-1) + x] ***/
for(int y=0; y < ysize; y++){
for(int x=0; x < xsize; x++){
if( buf_stencil[xsize*(ysize-y-1) + x]==1){ /*ステンシル値をチェック*/
/*** 除去処理 ***/
if (imgNIN->imageData[imgNIN->widthStep * y + x]==0) {
img->imageData[img->widthStep * (y) + (x)*3] = imgCLO->imageData[img->widthStep * (y) + (x)*3];
img->imageData[img->widthStep * (y) + (x)*3 + 1] = imgCLO->imageData[img->widthStep * (y) + (x)*3 + 1];
img->imageData[img->widthStep * (y) + (x)*3 + 2] = imgCLO->imageData[img->widthStep * (y) + (x)*3 + 2];
}
}
}
}
0824デフォルトの名無しさん
2010/01/27(水) 15:49:26単純にOpenCVのプロジェクトのプラットフォームを
モバイルに変更してもエラーが出てコンパイルできません。
モバイル上で利用するのは無理ですか?
0825デフォルトの名無しさん
2010/01/27(水) 16:22:3132-bit MS Windows (95/98), 32-bit MS Windows (NT/2000/XP), All 32-bit MS Windows (95/98/NT/2000/XP),
All POSIX (Linux/BSD/UNIX-like OSes),
OS X, Linux, Win2K, WinXP
0826デフォルトの名無しさん
2010/01/27(水) 18:43:120827デフォルトの名無しさん
2010/01/28(木) 01:52:38どう上手くいかないのかぐらい書けよ…。
0828デフォルトの名無しさん
2010/01/28(木) 11:28:50返事が遅くなりました、できました(*´∀`*)
c++と2.0に慣れてないもので、これから勉強します…
ありがとうございました!
0829824
2010/01/28(木) 13:21:43highguiあたりはちゃんと動くか分からないけど。
0830デフォルトの名無しさん
2010/01/28(木) 17:54:420831デフォルトの名無しさん
2010/01/28(木) 19:02:55for (i = 0; i < img.size; ++i) img.data[i] = img.data[i] > TH ? 255:0;
0832デフォルトの名無しさん
2010/01/29(金) 00:14:46純粋Cなのがよかったのに
0833デフォルトの名無しさん
2010/01/29(金) 03:00:00後でcvReleaseMatしまくるのが無くなっただけでもC++に移行した価値はあると思うんだけどなぁ
0834デフォルトの名無しさん
2010/01/29(金) 05:44:27今の方がいくらかマシ。
0835デフォルトの名無しさん
2010/01/29(金) 08:38:18これって例えば4枚の正解画像しか用意してなかったら、4つの正解サンプルしか作られないの?
-imgの時みたいに4枚の正解画像から7000個の正解サンプルとかはできないの?
ちなみにコマンドは
createsamples.exe -info positive.txt -vec positive.vec -num 7000 -bgcolor 255 -w 24 -h 24
positive.txtには4枚の正解画像のパスと位置を記してある。
このコマンドやったら4つの正解サンプルだけのvecファイル作るんだが・・・。
0836デフォルトの名無しさん
2010/01/29(金) 15:07:532値化した画像の画素値が0(黒)の部分だったら元画像を右に+5のように少しずれて、
そのずれた先がまた黒だったら、今度は元画像を下に+5ずれた部分から画素を取得する、
以下、その繰り返し・・・
というようなif文の書き方はどのように書けば良いのでしょうか?
画素値はIplImageで取得しています。
for(int y=0; y < ysize; y++){
for(int x=0; x < xsize; x++){
if (imgNIN->imageData[imgNIN->widthStep * y + x]==0) {
img->imageData[img->widthStep * (y) + (x)*3] = imgNOR->imageData[img->widthStep * (y) + (x+5)*3];
img->imageData[img->widthStep * (y) + (x)*3 + 1] = imgNOR->imageData[img->widthStep * (y) + (x+5)*3 + 1];
img->imageData[img->widthStep * (y) + (x)*3 + 2] = imgNOR->imageData[img->widthStep * (y) + (x+5)*3 + 2];
}
}
}
0837デフォルトの名無しさん
2010/01/29(金) 17:44:060838デフォルトの名無しさん
2010/01/29(金) 17:58:46それとも、if文を入れ子で使うということですか?
0839デフォルトの名無しさん
2010/01/29(金) 18:06:02この「繰り返し」がループだろう
while(見つかるまで)
if (そこは白){成功;break;}
else{右だか下だか移動}
0840デフォルトの名無しさん
2010/01/29(金) 18:36:53処理速度に拘らなければどーでもいいか。
0841デフォルトの名無しさん
2010/01/29(金) 19:34:394枚の画像に4つの正解しかないなら無理だと思うけど、そうじゃないなら
infoのファイルの矩形の数を7000に増やせばいいんじゃない?
0842デフォルトの名無しさん
2010/01/29(金) 22:01:30失敗なら、右、左、上、下などの場合分けをelseで書く感じでしょうか?
elseだと4回分(右、左、上、下)whileを書くのでしょうか?
また、見つかるまで、とはどのような継続条件式なのでしょうか?
for(y座標を走査)
for(x座標を走査)
while(見つかるまで?←)
if(そこが黒ならば)
if(そこが白ならば){成功;break}
else{右に移動}
while
if
else{左に移動}
・
・
・
0843デフォルトの名無しさん
2010/01/29(金) 22:14:250844デフォルトの名無しさん
2010/01/29(金) 23:04:55左とか上とか初出なんだけど
I(x,y) → I(x+5,y) → I(x+5,y+5) → I(x+10,y+5) → I(x+10,y+10) → ...
の順に非0の画素を探すんじゃないのか
while(注目画素の画素値が0) {
注目画素を左または下に交互に移動
}
0845デフォルトの名無しさん
2010/01/29(金) 23:05:17さっきは右と下の繰り返しって言ってたのに、左とか上とか出てきたし
0846844
2010/01/29(金) 23:10:41左じゃなくて右ね。つられて間違えてしまった
0847デフォルトの名無しさん
2010/01/29(金) 23:34:55今、単純に動画を再生するプログラムを作りました。
1GBくらいの動画なら再生はできるのですが、データサイズが大きくなると(10GBくらい)途中で再生が
止まってしまいます。プログラムはエラーが出ず、自然終了するので原因が分かりません。
誰か何か知っている方いらっしゃいませんか?
0848デフォルトの名無しさん
2010/01/30(土) 00:39:52?
0849デフォルトの名無しさん
2010/01/30(土) 02:11:03あたかも、動画をすべて再生したかのようにプログラムが終了してしまいます。
コマンドプロンプトには、”続行するには何かキーを押してください...”と表示されています。
0850デフォルトの名無しさん
2010/01/30(土) 02:17:16cvCreateFileCaptureで取り込んでcvShowImageしてるだけなん?
0851デフォルトの名無しさん
2010/01/30(土) 11:13:46いや、C#でしか触ってないので想像だし
コレでエラー吐かずに終了するのかも知らないけど
0852デフォルトの名無しさん
2010/01/30(土) 12:37:49それ俺も困ったけど、
-img でサンプル増やすコマンドを画像ごとに出力するスクリプト書いて
生成されたvecファイルをmergevecというコマンドで結合したらいいよ。
http://note.sonots.com/SciSoftware/haartraining/mergevec.cpp.html
0853デフォルトの名無しさん
2010/01/30(土) 21:26:06単に決まった値(今回は4値化したいので64,128,192)で分けれればいいので
クラスタリング?(よく分からない)は必要ないと考えて
ttp://d.hatena.ne.jp/aidiary/20091003/1254574041
を参考にピクセルごとに減色するコードを書いたのです。
でも、実行してみると5fps程度しか出ないぐらい遅くて使い物にならなかったのです。
こういった場合どう処理するのがいいんでしょうか・・・
考え方だけでもいいので教えていただきたいです。
なお、OpenCVは.net用ラッパーOpenCvSharpを使っていますが、普通のCのコードでもありがたいです。
0854デフォルトの名無しさん
2010/01/30(土) 21:34:58自己解決しました。
一応簡単に方法を書いておくと、
Thresholdで、各閾値で256/4=64と0の二値に変換(一番明るいところは63と0)
それら4つをaddすることで4値化できました。(たぶん)
0855デフォルトの名無しさん
2010/01/30(土) 21:40:58でもこの方法でどうにかなりそうなのでどうにかします。
0856デフォルトの名無しさん
2010/01/30(土) 22:29:49a/64*85 (aは整数値)
0857デフォルトの名無しさん
2010/01/30(土) 22:38:32ありがとございます
それは1ピクセル毎って事ですよね?
こんなに綺麗に書けるとは気づきませんでしたが1ピクセル毎にやるとどうも遅いのです。。。
そして>>854の方法でiを1〜3で回すとき
閾値を256/4*iでmax値を256/(4-1)にすることでうまく行きました
お騒がせしました。
0858名無し募集中。。。
2010/01/30(土) 23:27:410859デフォルトの名無しさん
2010/01/31(日) 01:47:120860デフォルトの名無しさん
2010/02/01(月) 01:50:12IplImageのimageDataが指す画像データは各ピクセルごとに、
B0 G0 R0 B1 G1 R1...
と値がならんでますよね?
これをcvCvtColor(BGR2HSV)と変換すると、
H0 S0 V0 H1 S1 V1...
となると考えていいんでしょうか?
0861デフォルトの名無しさん
2010/02/01(月) 03:46:40Hは0〜180なので注意
0862デフォルトの名無しさん
2010/02/01(月) 09:09:370863デフォルトの名無しさん
2010/02/01(月) 11:47:46すいません、ここでふつふつと疑問がでてきました。
cvCvtColorでBGRからHSVに変更しても、
例えば下記のようにした場合、
画像は赤になってしまいます。
これでは、imageDataとピクセルデータの対応関係が、
HSV形式ではなくBGR形式のままなのではないでしょうか?
とんちんかんでしょうか・・・
cvCvtColor(img, img, CV_BGR2HSV);
for(y = 0; y < img->height; y++)
{
for(x = 0; x < img->width; x++)
{
img>imageData[img->widthStep * y + x * 3 + 0] = 0;//H?
img->imageData[img->widthStep * y + x * 3 + 1] = 0;//S?
img->imageData[img->widthStep * y + x * 3 + 2] = 255;//V?
}
}
0864デフォルトの名無しさん
2010/02/01(月) 12:37:160865デフォルトの名無しさん
2010/02/01(月) 12:42:14その後に
HSV2BGRして表示しないとだめじゃ無い?
確か表示(showimgだっけか?今手元にPC無いんで曖昧でごめん)の時はBGRとして表示してる筈だから
て言うかこの場合最初のCvtColorは無意味
CvtColorは各要素の値を指定どおりに変換してるから
例えば要素1,2,3が255,255,255のイメージをBGR2HSVしたら0,0,255になるんだと思う
0866デフォルトの名無しさん
2010/02/01(月) 12:55:210867デフォルトの名無しさん
2010/02/01(月) 12:55:580868デフォルトの名無しさん
2010/02/01(月) 13:00:130869デフォルトの名無しさん
2010/02/01(月) 19:42:05みなさんありがとうございます。
cvShowImage関数の仕様に、ピクセルデータを強制的にBGR形式で表示するなんて書いてなかったですよ・・・
ハメ技きついなァ・・・・
まとめておきます。
BGR画像をHSV変換してピクセルデータを操作した後にcvShowImageで画面表示する方法
(1) cvCvtColor(image_in, image_out, BGR2HSV)
(2) imageDataはピクセルデータがH0 S0 V0 H1 S1 V1…が並んでいるので、そのように参照、変更を行う※
(3) cvCvtColor(image_in, image_out, HSV2BGR)
(4) cvShowImage(image_out)
※Hは通常の[0:360]タイプではなく、uchar用の[0:180]タイプなので、
Hの入力値を最大255最小0として、0〜255を0〜180に規格化する。
例 (uchar)(180.0*h/255.0);
0870デフォルトの名無しさん
2010/02/04(木) 08:58:43(エアコンの温度表示をWEBCAMで読んで、それをリモートからログインして知ろうとしてます)
OpenCVを使うのは適切でしょうか?
0871デフォルトの名無しさん
2010/02/04(木) 09:14:49あと書き忘れましたが、20個のエアコンの温度が4x5で並んでいるので、
それを一個づつ別々に認識させる必要があります。もう画像を取り込むところは
出来ていて、毎日人力でやっているのですが、これをなんとか自動化しようと
思っています。
どうかよろしくお願いします。
0872デフォルトの名無しさん
2010/02/04(木) 11:19:45できるかどうかは自分次第
0873デフォルトの名無しさん
2010/02/04(木) 11:21:330874デフォルトの名無しさん
2010/02/04(木) 11:31:090875デフォルトの名無しさん
2010/02/04(木) 13:13:42数字の位置は固定だろうから、
数字の判定は難しくないと思うよ.
画像のマッチングだけだし.
だけどその用途なら>>873の方がおすすめかも.
0876デフォルトの名無しさん
2010/02/04(木) 13:29:230877デフォルトの名無しさん
2010/02/04(木) 15:50:330878デフォルトの名無しさん
2010/02/04(木) 18:17:35書き出せません。どうやればいいでしょうか?
0879デフォルトの名無しさん
2010/02/04(木) 18:25:45cvSaveImage("XXX.jpg", IplImageポインタ)
とやると、拡張子をみて勝手にJPGで保存してくれるんですね。
0880デフォルトの名無しさん
2010/02/04(木) 19:52:33完全に固定、7セグの数字、周りの明るさもあまり変化しないなら
2値化した後数字の特定の領域の値読むだけで何とかなるかも
0881デフォルトの名無しさん
2010/02/04(木) 19:54:000882デフォルトの名無しさん
2010/02/04(木) 20:42:270883デフォルトの名無しさん
2010/02/04(木) 22:20:32ありがとう。
後一つ気になったんだけど、createsamples.exeの引数で背景を指定できるんだが、
この背景って精度上げるには指定すべき?
指定するなら背景ってどんな背景にしたらいいんだ?
実際に撮影する時の背景だけでいいのかな?
それともナイアガラの滝みたいに実際の撮影ではありえない背景とかも指定しといた方がいい?
0884デフォルトの名無しさん
2010/02/04(木) 23:21:44createsamplesの背景は透明色をきれいに設定しないと
人工的になってしまいそうだったので使ったことないけど
指定するなら検出対象の背景としてありえる範囲の画像でいいと思う。
自分の場合は2000枚くらいは自分で用意してそれを5倍に増やす作業に使ったので
背景はその2000枚の中である程度ばらけていて問題にならなかった。
0885デフォルトの名無しさん
2010/02/05(金) 02:40:49出来ませんでした。認識率がほぼゼロで、完全な白地に黒ではっきりと数字を書くと
ある程度認識できるみたいなので、OpenCVのcvThreshold()とかcvSmooth()とかで
いろいろフィルターを掛けてるのですが、エアコンの表示って、グレイの地に黒色で数字が
書いてありますよね。なので、全滅です。かりに出来たとしても、OCRを使うやり方だと、ちょっと光の反射具合が
変化しただけでもアウトになりそう。
こんなに難しいとは思わなかったス。別なアイデアを探します。
0886デフォルトの名無しさん
2010/02/05(金) 10:15:52ありがとうございます。
背景の色設定が難しそうだからやめときます。
それともう一つ質問です。
自分は手形状の分類器(チョキの形)を作ろうと思ってるんですけど
haartraining.exeで使用する不正解サンプルってどんな画像を中心に集めたらいいですか?
チョキの形をしている手が写ってなければ問題ないですかね?
グーの形とかパーの形としっかり区別したいんでそれらの画像も不正解に多めに入れといた方がいいのかな?
0887デフォルトの名無しさん
2010/02/05(金) 10:17:11>グレイの地に黒色
二値化すれば?
0888デフォルトの名無しさん
2010/02/05(金) 20:44:200889デフォルトの名無しさん
2010/02/06(土) 00:45:09一番いいのは(あるなら)想定しているシーンで検出対象が写っている画像の
検出対象だけを近辺の色で塗りつぶした画像だけど正解画像を作るの同じくらいの
労力が必要になる。正解画像を作る過程で同時に作れると少し楽。
1枚の画像から複数の物体を検出する場合は
同時に写っている可能性があるなら他の背景よりも
信頼性のある不正解なので増やせばいいけど
もしジャンケンのようにどれかに決定したいなら
誤検出を気にするよりは数秒間投票を行って多数決で決めるなどのほうがいいと思う。
ただhaarlikeは形状の変化に弱いので
手を検出するならカメラからの視点をできるかぎり制限しないと難しいと思うよ。
0890デフォルトの名無しさん
2010/02/06(土) 15:50:38ありがとうございます。
こちらの実験環境はデスクトップパソコンにカメラを固定しそこから物体検出するというものです。
なので背景画像は常に一定、カメラの視点も常に一定で行います。
とゆう事は不正解サンプルは様々な種類(屋外画像や検出非対称オブジェクトが写っている画像等)
を数千枚集めるのではなく、実験を行う時の背景画像1枚から数千枚切り出した画像を不正解サンプルにすべきという事でしょうか?
このような質問をさせていただいてますが、自分はどちらかというと誤検出を減らすというよりも
正解オブジェクト(今回の場合ではチョキの形)の認識率を増やしたいのです。
とゆうのも自分が考えているじゃんけん認識プログラムのアルゴリズムは
背景差分を行う
ラベリングによりスパイクノイズの除去
物体オブジェクトのROIを指定しその領域のみ物体認識を行う
なので、物体認識を行う場合の背景の誤認識は考えていません。
正解オブジェクト(今回はチョキ)が表示された時は確実にそれを認識する分類器を作成したいです。
一度自分なりに分類器を作成しましたがあまり精度が良くありませんでした。
誤検出を下げるよりも認識率を上げる良い方法があればアドバイスお願いします。
0891デフォルトの名無しさん
2010/02/06(土) 17:06:38cvGetMinMaxHistValue(hist, &min_value, &max_value, &min_idx, &max_idx);
とし、printf("%d",max_idx);としたのですが、すべて0と表示されてしまいます。
ヒストグラムの最大値のインデックスを得る良い方法はないのでしょうか?
max_valueをprintfで表示しても5000〜100000の値が見れますし、サンプル通りヒストグラムを画像表示させてもきちんと表示されております。
0892デフォルトの名無しさん
2010/02/07(日) 00:12:04物体検出は"物体オブジェクトのROIを指定し"の部分を機械的にするものだから
そこの次の段階なら認識だと思うのでhaartrainingを使うのは用途が微妙な気はする。
ROIの領域が必ず手でグーチョキパーの多クラス分類がしたいだけなら
Suppert Vector Machine等でやったほうがいいのでは。
http://opencv.jp/sample/svm.html
今のまま精度を上げたいなら
ROIの領域を正解画像が十分入るように広めにとることと
実験環境で分類器に入力されるのと同じ手の画像(背景差分して背景を塗りつぶしている?)を正解にすることと
createsamplesは2〜10倍に増やす用途に使って
1000枚くらいは実際の映像から切り出した画像を使うことだと思う。
チョキは指の開きを変えた正解画像がたくさん必要そう。
入力前に背景差分やラベリング等で加工しているなら
加工後の画像を正解や不正解に設定しないといけない。
0893デフォルトの名無しさん
2010/02/07(日) 14:30:59ありがとうございます。
現段階ではグーチョキパーの3クラス分類ですが、
今後は手話における多クラス手形状認識を行う事を考えております。
SVMも参照させていただきましたが
SVMは多クラス分類においてはHaar-Like特徴による物体認識よりも精度が劣るとありましたので今回はHaar-Like特徴でやります。
精度向上に関してのアドバイスありがとうございます。
参考にさせていただき分類器の作成にとりかかります。
また、何かあればアドバイスの方おねがいいたします。
0894デフォルトの名無しさん
2010/02/08(月) 02:02:35min_idx,max_idxには配列を渡すみたいだよ.
ただ,マニュアルを見てもなにが設定されるのか分からなかったので,
ソースコードを見たほうがいいと思う.
0895デフォルトの名無しさん
2010/02/13(土) 04:29:490896デフォルトの名無しさん
2010/02/13(土) 23:54:03有難うございます。
配列へのポインタについてですが、int (*max_idx)[100] = {0};などとして、cvGetMinMaxHistValueの引数にどのように記述すればよいのでしょうか?
宣言等が間違っていたら申し訳ありません。
0897デフォルトの名無しさん
2010/02/15(月) 00:35:42OpenCVでアルファチャンネル付きの動画を生成することは可能でしょうか?
またその場合気をつけることはありますか?
0898デフォルトの名無しさん
2010/02/15(月) 00:42:27なかなか思っている情報がみつかりません。
cvCreateImage で4チャンネルのイメージ空間を作って
cvCreateVideoWriter でライタを作るときにアルファチャンネルに対応したFOURCCを選んで
cvWriteFrame で書き込み(アルファチャンネルなしのときと同じ)
って思っているのですが、そもそもこの考え方に間違いがありますか?
0899デフォルトの名無しさん
2010/02/15(月) 09:24:19もっとネガティブ画像を増やして学習を行いたいのですが、ネガ画像に使えそうな画像が大量にあるサイトなどはないでしょうか?
どなたか知っている方がいたら教えてください。
0900デフォルトの名無しさん
2010/02/15(月) 14:03:06ネガ画像はcvNotで作れると思いました。
0901デフォルトの名無しさん
2010/02/16(火) 11:32:430902デフォルトの名無しさん
2010/02/16(火) 14:55:360903デフォルトの名無しさん
2010/02/16(火) 18:19:14できればネガ画像に即使えそうな画像ファイルが大量に置いてあるサイトについて教えていただきたいのですが…。
ちなみにポジ7000、ネガ3000で横顔を認識させているのですが、デフォルトで配られている正面顔認識用xmlファイルほど
赤丸がしっかり出せなくて困っています。
ちなみにminhitrateを0.999、maxfalsealarmを0.38で作成したので誤認識はほとんどありません。
赤丸を継続的に出すには画像枚数を増やせば良いのでは、と考えています。
0904デフォルトの名無しさん
2010/02/16(火) 19:26:40作りたい物にもよるが認識されないよりは良いと思う
0905デフォルトの名無しさん
2010/02/16(火) 20:39:15認識はされるのですが赤丸が出たり消えたりの繰り返しでなかなか継続的に出てくれません。
なのでブラウザを起動させるのに多少時間がかかってしまいます。
もっと強いxmlファイルを作成できれば解決できると考えていますが…。
0906デフォルトの名無しさん
2010/02/16(火) 21:15:250907デフォルトの名無しさん
2010/02/16(火) 21:31:350908デフォルトの名無しさん
2010/02/16(火) 21:34:540909デフォルトの名無しさん
2010/02/16(火) 23:09:50横顔の定義を緩めたポジや撮影環境の悪いポジを増やしてロバストにしないと。
誤検出は増えても、検出位置を追跡していれば誤検出として処理することができる。
ちなみにデフォルトで配られている横顔検出用XMLはどうだったの?
haarcascade_profileface.xmlがそうだと思うけど。
0910デフォルトの名無しさん
2010/02/17(水) 08:49:44「継続的に出ない」というのは赤丸が出たり消えたりして点滅するような感じになってしまうということです。
撮影環境の悪いポジを増やすというのは納得できました。
横顔の定義を緩めたポジとはどのような画像のことでしょうか?
0911デフォルトの名無しさん
2010/02/17(水) 09:02:37デフォルトで配られているhaarcascade_profileface.xmlでは正面顔も検出されてしまい横顔のみを検出することはできないように思います。
0912デフォルトの名無しさん
2010/02/17(水) 09:35:110913デフォルトの名無しさん
2010/02/17(水) 21:56:32赤丸が出たり消えたりするというのは
ビデオのフレームごとに横顔が検出されたりされなかったりしていて
つまり横顔の微妙な動きによって検出される横顔とされない横顔がある。
断続的に検出したいなら、今検出されていない横顔を検出しないといけない。
それで、微妙な動きで検出されなくなるのは、
ポジが統一され過ぎているせいではと思ったの。
断続的に検出したいフレームには
横顔だけど少し正面気味だとか下を向いてる顔があって
それを検出したいのにポジに入っていないのでは。
ただ今の状態で見逃しはあるものの大体検出できているなら
最初に横顔を検出してからN秒の間に横顔を検出したフレーム数のカウントを取って
それが閾値以上ならN秒間横顔を検出し続けたということにしてコマンドを実行したほうが
安定すると思うよ。
0914デフォルトの名無しさん
2010/02/18(木) 09:12:54ポジ画像は一枚の横顔画像からcreatesamplesで7000枚にして使用しています。
やはり1枚の画像→createsamplesで増やす、ではポジが統一されすぎてしまうのでしょうか?
だとしたら断続的に検出するには今検出されていない横顔を検出しないといけないというのは非常に納得できます。
初期の頃は微妙に角度の違う複数枚の画像を原画像に使用し、検出対象の座標をリストに作成しhaartrainingを行ったこともありましたが
検出対象の座標をどのようにしたら正確に得ることができるのかわからず、現在の1枚の画像→createsamplesで増やすという手法に切り替えました。
複数枚の原画像を使った手法についてアドバイスをいただけないでしょうか?
0915デフォルトの名無しさん
2010/02/18(木) 19:48:03http://note.sonots.com/SciSoftware/haartraining.html#e5c54f60
http://lab.cntl.kyutech.ac.jp/~kobalab/nishida/opencv/haartraining_jp.htm
あたりを見たら分かると思うよ。
座標指定が不安なら検出したい範囲を切り取って個別の画像にして
ファイル名 0 0 画像の幅 画像の高さ
で作ればいい。
数枚の元画像とcreatesamplesを組み合わせる方法は>>835 >>852
0916デフォルトの名無しさん
2010/02/18(木) 19:50:26ファイル名 1 0 0 画像の幅 画像の高さ
0917名無し募集中。。。
2010/02/19(金) 02:41:360918デフォルトの名無しさん
2010/02/19(金) 08:53:44とりあえず微妙に角度や向きの異なった横顔画像をcreatesamplesで増やしmergevecでマージさせるという方法を試してみたいと思います。
0919デフォルトの名無しさん
2010/02/19(金) 19:35:07フーリエスペクトルの原点を通る水平方向の断面のグラフを作りたく、(7)のあとに
( unsigned char ) value = ( unsigned char ) image_Re -> imageData[ i + j * image_Re -> widthStep ];
(jは固定)をforでまわして値をとってグラフにしても、左右対称っぽいものになりません。
何が原因なのでしょうか。
0920デフォルトの名無しさん
2010/02/19(金) 19:48:04そんなことしなくても
係数だけ見ればいい
0921デフォルトの名無しさん
2010/02/19(金) 20:46:42係数とはどの係数でしょうか。
0922デフォルトの名無しさん
2010/02/20(土) 00:47:21他のにするとFFMpegがエラーを吐く。
IndeoとかMSVCとか入ってないわけないんだが、どうしてだ??
0923デフォルトの名無しさん
2010/02/20(土) 15:46:22CvMat *mat = cvCreateMat(2, 2, CV_64FC1);
のように行数と列数を指定する必要があると思うのですが、行数があらかじめ分からないときはどうすればよいでしょうか。
vectorのpush_backのような感じで行を動的に追加していくことは可能ですか?
0924デフォルトの名無しさん
2010/02/20(土) 17:58:160925デフォルトの名無しさん
2010/02/20(土) 18:07:320926デフォルトの名無しさん
2010/02/20(土) 18:18:18vector<float> data;
// dataにpush_back()でデータを詰め込む
int rows = data.size() / DIM; // DIMはデータの次元数なので割れば行数になる
int cols = DIM;
cout << rows << "x" << cols << endl;
CvMat samples;
cvInitMatHeader(&samples, rows, cols, CV_32FC1, &data[0]);
0927デフォルトの名無しさん
2010/02/21(日) 18:41:49どうしてもっと早く教えてくれなかったんだ
0928デフォルトの名無しさん
2010/02/21(日) 19:14:40こいつ自体は知ってたけどこれの文法が分からん
cv::Matでやるにはどうしたらいいんだ
0929デフォルトの名無しさん
2010/02/21(日) 23:01:49それぞれのテンプレート画像を切り出してると思うのですが、このテンプレート画像の
サイズを変更ってできますか?
今、元画像を色抽出してcvFindStereoCorrespondenceをかけているのですが、テンプレート画像が
細かすぎて、うまくマッチングできないので、これをもっと粗くするほうほうを探しています。
0930デフォルトの名無しさん
2010/02/22(月) 07:35:49メモリ表示してデータ型合わせたら見れるだろ
0931デフォルトの名無しさん
2010/02/22(月) 19:04:19cv::Matでも使えたよ
0932デフォルトの名無しさん
2010/02/22(月) 22:25:15うん、今気づいた
だが
#array()の中身を
expr : ((double*)$c.data)[$i],
size : ($r==1)*$c.rows + ($r==0)*$c.cols,
rank : 2
にすればもっと行列っぽくなる。
mjdk!って思ってやってみたら
表示される値が違う(´・ω・`)ショボーン
0934932
2010/03/03(水) 15:41:51ttp://codepad.org/fMfvWKEa
0935デフォルトの名無しさん
2010/03/03(水) 19:54:02対称行列じゃないとき?にズレるね
0936デフォルトの名無しさん
2010/03/07(日) 23:42:390937デフォルトの名無しさん
2010/03/08(月) 21:54:25勝手に8bitカラーに圧縮して読み込まれてしまうようなんですけど、これは仕様ですか?
オンラインマニュアル見ても特に記載されていないので・・・。
0938デフォルトの名無しさん
2010/03/08(月) 23:06:410939デフォルトの名無しさん
2010/03/08(月) 23:25:11CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR
0940937
2010/03/09(火) 00:34:02>>939 いえ、第2引数もそのように指定して、
IplImage* tmp = cvLoadImage("test.tif",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
としても、tmp->depthがIPL_DEPTH_U8となっていて、実際にtmp->imageDataに格納されている
画素配列を確認しても8bitに変換されている状態でした。
サンプル画像はhttp://dl.maptools.org/dl/libtiff/の
pics-3.8.0.tar.gzのflower-rgb-contig-16.tifを使用しました。
0941デフォルトの名無しさん
2010/03/09(火) 01:17:56PNGだと読めるみたいだけどtifだとダメみたいですね
grfmt_tiff.cpp見ると8bitにしか対応してないような気もする
0942デフォルトの名無しさん
2010/03/14(日) 22:14:363週間近く経っても実行完了しない。
サンプル画像の縦横比はそろえてるんだけどなぁ。
比だけでなく縦の長さ、横の長さ自体をそろえないとダメですかね?
それとももっと別の理由でしょうか。
0943デフォルトの名無しさん
2010/03/15(月) 00:55:33サイズはテキストに書いて指定する。
0944デフォルトの名無しさん
2010/03/15(月) 01:07:280945デフォルトの名無しさん
2010/03/16(火) 01:47:05それとも2.0で使ってても問題無いですか?
0946138
2010/03/16(火) 02:08:100947デフォルトの名無しさん
2010/03/16(火) 20:53:460948945
2010/03/17(水) 02:24:171.1と2.0は関数名とかも同じなのかな?
0949デフォルトの名無しさん
2010/03/17(水) 10:47:38変わったものもあるけど、コンパイルエラーが出てからググれば大丈夫。
0950デフォルトの名無しさん
2010/03/17(水) 18:31:12座標指定だけでやる方法ってある?
0951デフォルトの名無しさん
2010/03/17(水) 20:12:07をやるくらいならマスクのほうがいいな
0952デフォルトの名無しさん
2010/03/17(水) 20:19:06水平ラインごとに三角形内部の始点と終点座標を求めればOK。小学校の算数レベル。
0953デフォルトの名無しさん
2010/03/17(水) 20:51:15ならマスク画像を3点の座標からopenCVで描けばいいよね
0954デフォルトの名無しさん
2010/03/17(水) 22:29:330955デフォルトの名無しさん
2010/03/18(木) 16:02:060956デフォルトの名無しさん
2010/03/19(金) 18:04:48どうせ取り出すときにマスク範囲と同じ領域が
必要だからマスクのほうが効率いいんじゃない?
0957デフォルトの名無しさん
2010/03/19(金) 22:49:06openCVに付属してる奴は自分でCの関数書くとそれをpythonから簡単に読めなかった記憶あるんだけど
0958デフォルトの名無しさん
2010/03/23(火) 21:35:45なんでctypes使わないの?
0959デフォルトの名無しさん
2010/03/24(水) 04:21:22emacsでは無理なのか
0960デフォルトの名無しさん
2010/04/02(金) 14:24:01サンプルプログラムの実行をVisualStudioからできない
コンパイルしたのを直接動かすことはできる
VisualStudioでデバックしながら実行したいのに
0961デフォルトの名無しさん
2010/04/03(土) 03:26:55画像ファイルから動画を作りたいと思っているのですが、以下のプログラムを実行しても、最初の画像しか出てきません。
自分としては2枚目の画像が2秒後に出るように作ってみたつもりなのですが・・・。
また、コーデックで無圧縮AVIは使えるのでしょうか?//にしている部分を実行してみたところ、エラーになりました。
良かったら、どこが間違っているのか教えてください。
WindowsXPでOpenCV1.1preを使用しています。言語はC++/CLIです。
よろしくお願いします。
CvVideoWriter* rec;
CvSize sz;
sz = cvSize(640,480);
rec = cvCreateVideoWriter("D:\\Test.avi",CV_FOURCC('P','I','M','1'), 120, sz,1); // MPEG-1
// rec = cvCreateVideoWriter("D:\\Test.avi",CV_FOURCC('D','I','B',' '), 120, sz,1); // 無圧縮AVI?エラーになる
IplImage* img1 = cvLoadImage("D:\\tmp.bmp");
cvWriteFrame(rec,img1);
IplImage* img2 = cvLoadImage("D:\\tmp2.bmp");
cvWriteFrame(rec,img2);
cvReleaseImage(&img1);
cvReleaseImage(&img2);
0962961
2010/04/03(土) 19:10:12MPEG-1コーデックが壊れていたらしいです。
0963デフォルトの名無しさん
2010/04/04(日) 19:09:271394以外だったらキャプチャボードが必要
0964デフォルトの名無しさん
2010/04/08(木) 02:21:21IplImage* img = cvLoadImage("CMYK.TIF", CV_LOAD_IMAGE_ANYCOLOR);
↑でフォトショで作ったCMYKのTIFF画像を読み込んだのですがimg->colorModelを参照するとなぜかRGBになっています
勝手にRGB変換されてしまうのでしょうか?CV_LOAD_IMAGE_ANYCOLORをつけているのですが・・・
OpenCVでCMYKを正しく扱うにはどうすればいいですか?
0965デフォルトの名無しさん
2010/04/08(木) 22:48:40そのTIFF画像のRGBにCMYK時の色が付いてるんだろ
0966デフォルトの名無しさん
2010/04/09(金) 02:13:110967デフォルトの名無しさん
2010/04/09(金) 03:06:330968デフォルトの名無しさん
2010/04/09(金) 21:09:02いやなら変換しろ
0969デフォルトの名無しさん
2010/04/12(月) 14:05:100970デフォルトの名無しさん
2010/04/12(月) 20:55:41Ubuntu -- lucid の libcv4 パッケージに関する詳細
ttp://packages.ubuntu.com/lucid/libcv4
0971デフォルトの名無しさん
2010/04/13(火) 13:05:57OpenCVは対応したのかな
0972デフォルトの名無しさん
2010/04/13(火) 23:53:36まぁ2010でも問題無いだろう
0973デフォルトの名無しさん
2010/04/14(水) 12:12:570974デフォルトの名無しさん
2010/04/15(木) 09:01:282010express単体だとopenmpライブラリ無くて使えないから
windowssdk7.1を待つしかないな
0975デフォルトの名無しさん
2010/04/15(木) 11:26:140976デフォルトの名無しさん
2010/04/15(木) 16:54:35http://opencv.jp/sample/video_io.html
このサンプルプログラムをそのまま使っています。
ビルドもエラー無くでき、カメラは認識するんですが映像が映りません。
環境はVisial C++ 2008 OpneCV1.0 カメラはMicrosoft Life Cam VX-7000です。
設定などは全部できました。
0977デフォルトの名無しさん
2010/04/17(土) 14:51:341.0だとDirectShow経由で画像取得してる例がいくつかあるね。
0978デフォルトの名無しさん
2010/04/18(日) 21:38:18距離(ピクセル数ではない)を求めたいのですが、どのような方法が一般的でしょうか?
例えば斜めの線だと、2点間の距離はピクセル数ではない為、
線を書いてピクセル数を数える方法では対応できませんでした。
0979デフォルトの名無しさん
2010/04/18(日) 23:10:090980デフォルトの名無しさん
2010/04/18(日) 23:31:10勉強不足ですみません。例えば X1=1 Y1=1 ピクセルを P1、X2=5 Y2=6 ピクセルを P2 とすると
2つの座標間を線を書くなどして現すと■のような軌跡で6ピクセルとなりますが、
これは X2-X1 か Y2-Y1 のどちらか大きい方の移動量を現すだけで、点間の距離ではありません。
P1とP2の距離を座標で計算すると SQRT((5-1)^2+(6-1)^2) で、距離は 6.403 になると思います。
■(←P1:1,1)
□■
□□■
□□□■
□□□■
□□□□■(←P2:5,6)
0981デフォルトの名無しさん
2010/04/19(月) 01:00:35直線しか検出しないの?
2値化されているなら、
while(1){
■(X,Y)の場所から上下左右の9ピクセルの中から
上の座標以外で■のある場所を探して、その座標をX,Yに
■が無かったらbreak;
}
0982デフォルトの名無しさん
2010/04/19(月) 03:04:24ではどちらか大きい方を選べばいいんじゃ?
len = max ( abs(X2-X1), abs(Y2-Y1) ) + 1;
0983デフォルトの名無しさん
2010/04/19(月) 03:12:35斜め移動は√2で計算すればいいんじゃないの?
0984デフォルトの名無しさん
2010/04/19(月) 12:02:19その距離が欲しいなら、その距離を計算すればいいんじゃないの?
等高線の長さが欲しいなら、擬似的には>983でいいし。
>983で>980の状況なら、等高線の長さは4√2+1で約6.66になるね。
0985980
2010/04/19(月) 21:10:34アドバイスありがとうございます。
983さんの方法が近似的に計算できそうなので、この方法で考えてみます。
0986名無し募集中。。。
2010/04/20(火) 01:23:49http://pc12.2ch.net/test/read.cgi/tech/1271686856/l50
レス数が950を超えています。1000を超えると書き込みができなくなります。