X



【Intel】OpenCV総合スレ 5画素目【画像処理】
■ このスレッドは過去ログ倉庫に格納されています
0004デフォルトの名無しさん
垢版 |
2013/10/25(金) 17:34:12.59
OpenCV 2.4以降でMatと配列を相互変換したい。
Matは幅w、高さhのCV_32FC3型。
配列はw*h*3のfloat型3次元配列。
for文を使わずシンプルに書きたいんだけど、
いい方法ないかな?
0006デフォルトの名無しさん
垢版 |
2013/10/25(金) 17:53:07.71
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
0007デフォルトの名無しさん
垢版 |
2013/10/25(金) 19:54:30.16
いちもつ
0009デフォルトの名無しさん
垢版 |
2013/10/26(土) 10:46:42.66
ググったらできました!ありがとうございまいた
0010デフォルトの名無しさん
垢版 |
2013/10/26(土) 10:51:15.28
916 57 [sage] 2013/10/25(金) 21:38:54.52 ID: Be:
openCV触ってみたが、cで扱った時よりか大分楽だな。
インストールからして凄く楽々
開発も楽々

ちっくら、惚れた
0011デフォルトの名無しさん
垢版 |
2013/10/26(土) 11:10:57.43
一般人なら英語を読めて当然とは思わないけど、プログラマなら当然でしょ。
これだけ日進月歩の激しい分野でどこかの誰かの翻訳待ちとか頭悪すぎる。
0017デフォルトの名無しさん
垢版 |
2013/10/27(日) 07:29:51.98
pythonで使っても速いっすか?
0021デフォルトの名無しさん
垢版 |
2013/10/27(日) 10:39:53.41
2ちゃんにクロスポストの機能があればなぁ
0025デフォルトの名無しさん
垢版 |
2013/10/27(日) 11:06:27.15
実行時最適化のおかげで行列が速い速い
ES6からSIMDも入るしJSで書けば一足先に未来へ行ける
0027デフォルトの名無しさん
垢版 |
2013/10/27(日) 11:22:29.85
極一部のレアケース除いてJSがC/C++より速いわけねーだろ・・・。
と思ったけどJSと比べられてるのは文脈的にPythonか?それならそうだろうな。
0029デフォルトの名無しさん
垢版 |
2013/10/27(日) 11:39:32.94
そうでもない
JSの実行速度はかなり速い
ブラウザのおまけだった時代と違う
今や速度ではアセンブラがライバル
昔のイメージで見ると時代に乗り遅れる
0031デフォルトの名無しさん
垢版 |
2013/10/27(日) 11:44:34.38
Intel自身がOpenCVを書く言語を誤ったと認めているからね。
大量のデータに小さな命令を適用するにはVM方式のほうが速度面で有利らしい。
0035デフォルトの名無しさん
垢版 |
2013/10/27(日) 11:51:19.46
速度の話は門外漢だから触れないけど
ライブラリをC/C++で書くというのは、大抵の言語に存在するFFIを利用できることに他ならない
いちいちポーティングしなくても使用できる点において絶対的に優位だと思う
VMだとそうはいかないだろう
0037デフォルトの名無しさん
垢版 |
2013/10/27(日) 11:58:32.12
技術板である以上、JSのほうが速いとわかったらJSで書き直す有志が
出てくると思う
OpenCVの倍以上速くなる
0039デフォルトの名無しさん
垢版 |
2013/10/27(日) 12:03:15.55
ライブラリが使用されるには実装に加えて保守が必要だからねー
JSでしか使えないライブラリでそんな人足が集まるだろうか?
0042デフォルトの名無しさん
垢版 |
2013/10/27(日) 12:07:32.20
ES7からexport入るし他の言語から呼び出される側になるだろうね
ライブラリは高速性を生かしてJSで書き
アプリは環境固有のネイティブで書く
0043デフォルトの名無しさん
垢版 |
2013/10/27(日) 13:05:28.72
Javascript製のOSが出てきているのでJavascriptがネイティブ言語になる可能性もある
Javascriptはシステム記述言語としても成熟してきた
0049デフォルトの名無しさん
垢版 |
2013/11/01(金) 00:25:44.39
Mac のPythonでOpenCVを使いたいと思い
ttp://slowquery.hatenablog.com/entry/2013/06/09/121420
を参考にHomebrewでインストールしました。

このサイトに乗っているデモをダウンロードして実行したのですが
running: color_histogram.py
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /tmp/opencv-YuGx/opencv-2.4.6.1/modules/highgui/src/window.cpp, line 261
Traceback (most recent call last):
File "color_histogram.py", line 38, in <module>
cv2.imshow('camera', frame)
cv2.error: /tmp/opencv-YuGx/opencv-2.4.6.1/modules/highgui/src/window.cpp:261: error: (-215) size.width>0 && size.height>0 in function imshow

Cleaned up camera.
と出てしまいます。なにがおかしいのでしょうか?
0052デフォルトの名無しさん
垢版 |
2013/11/06(水) 19:41:00.92
Officeなどにゼロデイ脆弱性、Word用いた標的型攻撃も観測
米マイクロソフトは2013年11月5日、Microsoft Officeなどに未修正の脆弱性
(CVE-2013-3906)が存在することを明らかにし、注意を呼び掛けた。
http://www.atmarkit.co.jp/ait/articles/1311/06/news105.html

(前略)
 脆弱性が存在するのは、Windows Vista、Windows Server 2008、
Microsoft Office 2003〜2010とMicrosoft Lync。
Microsoft Graphics ComponentのTIFF形式の画像処理に問題があり、
細工を施したTIFF画像を開くと、攻撃者に権限を奪取され、リモートからコードを実行されてしまう恐れがある。
(後略)
0053デフォルトの名無しさん
垢版 |
2013/11/07(木) 12:44:05.62
OpenCVに梱包されている目の検出器で検出された領域というのは、
どのくらい確からしいものなんだろう。

領域内のある程度決まった場所に目頭とか目尻って出てくるんだろうか。
0055デフォルトの名無しさん
垢版 |
2013/11/09(土) 18:04:08.77
opencvを用いて部分的にSURFを抽出する処理を書いています。
ですが、全体に対してSURF抽出をした場合と、部分的にした場合とでは
SURFの出力が異なってしまうのですが、原因がわかりません
以下画像です。
ちなみに2枚目の画像は、マスク画像で、これを使って部分的にSURF抽出してます。

http://uploda.cc/img/img527df9a52daa5.png
http://uploda.cc/img/img527dfa737a888.png
0056デフォルトの名無しさん
垢版 |
2013/11/09(土) 21:02:43.07
>>55
"SURFの出力"を詳しく知りたい。
取れるkeypointが異なるのか、取れたkeypointの特徴量が異なるのか、マッチングの結果が異なるのか。
0057デフォルトの名無しさん
垢版 |
2013/11/10(日) 00:09:21.39
>>56

とれるキーポイントの場所が異なる。

具体的には、>>55の一枚目の画像で、右側の画像ではイルカの上側付近に特徴点が
抽出されてるのに対して、左側の画像ではその部分に特徴点が無いんです。

部分的にSURF抽出すると
画像の黒いエッジ付近にやや、特徴点が抽出されてしまっているのをどうにかしたい。
この部分はマスクで処理しているので、決して画素値0として処理しているわけではないです。
0058デフォルトの名無しさん
垢版 |
2013/11/10(日) 00:33:48.05
>>57
塗りつぶすのがいかんのじゃない?
塗りつぶすんじゃなくてちゃんとカットしたのと比べてみた?
005958
垢版 |
2013/11/10(日) 00:34:41.38
失礼。
マスクしてたのね。
0060デフォルトの名無しさん
垢版 |
2013/11/10(日) 21:33:33.48
質問です。opencvsamples\cpp\peopledetect.cppのHOGの人認識プログラムの処理速度を改善する方法はありますか
動画中の人物を認識しようとしているのですが、自分の試した限りでは最速でも1フレームあたり0.7秒程度かかってしまいまいます
これをなんとか1フレームあたり0.2〜0.3秒で処理したいのです
もし難しいようであれば他の手法やライブラリを紹介していただけるとありがたいです。高額でなければ有料のものでも構いません
0064デフォルトの名無しさん
垢版 |
2013/11/10(日) 23:38:37.31
>>57
マスクに関しては0として計算してしまう仕様なんだろうね。keypointの場所に関しては今のところわからない…

その場しのぎの手段だけど、左図でdetectionした後に各keypointの座標とマスクを参照して切る処理を自作するとか。
0065デフォルトの名無しさん
垢版 |
2013/11/11(月) 00:29:22.93
質問です。
cv:Matを用いて1ch 3次元のヒストグラムを操作する処理を作成しているのですが現在配列へのアクセスにてこずっています。
Matにおける3次元配列へのアクセス方法を教えて頂けないでしょうか?

初歩的な質問だと思いますがよろしくお願い致します。
0069デフォルトの名無しさん
垢版 |
2013/11/12(火) 17:46:48.29
オライリーの詳解opencv買っちまったから
IplImageとかのほうでいまだにやってるわ。
0070デフォルトの名無しさん
垢版 |
2013/11/12(火) 19:17:03.04
IplImageに毎回変換するの面倒とか思ってたら
気がついたら動画の読み込みと作成だけOpenCVにやらせて、
画像処理は自力になった
0074デフォルトの名無しさん
垢版 |
2013/11/15(金) 07:12:27.22
シーケンスの要素を削除するときのエラーについて質問します


あるシーケンスA(CvSeq *A)の
総数(A->total)が500個でした。

そこで
for(i=0;i<300;i++){
cvSeqRemove(A,i)
}

をすると、i<300では大丈夫なのですが、iを350あたりより大きくすると
エラーがおきます。

シーケンスの数は500なのに、なぜ350個以上削除するとエラーが起きるのでしょうか??
0077デフォルトの名無しさん
垢版 |
2013/11/18(月) 05:51:33.00
以下の4行目のように一度シーケンスに格納したあと、
すぐにそのシーケンスから中身を取り出して ->size  の値をを調べてみると
まったく違う値になります。どうしてですか・・・
正常値は10~30なんですが、取り出した後は22430958309(整数)というありえない数値になってます


CvSURFPoint *pp1=(CvSURFPoint*)cvGetSeqElem(keypoints1,i);
cout<<pp1->size<<endl;//ここは正常値

cvSeqInsert(new_keypoints,new_keypoints->total,pp1);
CvSURFPoint *SURFP=(CvSURFPoint*)cvGetSeqElem(new_keypoints,new_keypoints->total-1);
cout<<SURFP->size<<endl;
0078デフォルトの名無しさん
垢版 |
2013/11/18(月) 18:53:48.67
bgfg_segmのサンプルをビルドして実行してみたんだけども、何も設定した覚えがないのにブレークポイントが発生して最後まで動かない...。どうしてかわかる??やっぱりサンプルのコードにバグがあるのかな...。
0080デフォルトの名無しさん
垢版 |
2013/11/20(水) 15:40:09.21
前に3次元配列へのアクセスについて質問させて頂いた者です。
自主解決出来ました!
3次元用のatが定義されてたんですね。
反応してくださった方ありがとうございました!
0081デフォルトの名無しさん
垢版 |
2013/11/25(月) 19:04:31.42
初心者です
opencv2.4.6を使っているんですが、以前使えていたcvAndの機能はcvクラスではどんな使い方(cv::?)にすれば良いのでしょうか?

リファレンスを見つけたのですが分からなくて……

よろしくお願いします
0083デフォルトの名無しさん
垢版 |
2013/11/25(月) 22:00:16.44
CvMatとMatのことで悩んでおります。
以下のCvMat型の表記をMat型に直すにはどうすればよいのでしょうか。
ご存知の方いらっしゃったらご教授下さい。

CvMat *cvMat;
CV_MAT_ELEM(*cvMat, int, x, y) = value;
008483
垢版 |
2013/11/25(月) 23:36:25.10
83です。
mat.at<int>(j,cur) = (int)val;
にて書き換えが出来たと思ったのですが、matの中身を参照したところ
浮動小数点で表示されてしまいます。
調べたところcreateが以下のようになっており
mat.create( X,Y, CV_32FC1);
3番めの引数をCV_8UC4等に変えてみたのですが、
そうするとmatが正しく初期化されていないとエラーが出てしまいます。
対策方法有りましたらご教授お願いします。
0085デフォルトの名無しさん
垢版 |
2013/11/26(火) 01:34:13.43
何をやりたいか整理して話してください。
・使いたい型はuchar?float?
・チャンネル数は1?4?
・書き込みたい値の型はint?
いろいろ混ざりすぎて何やりたいかさっぱり
008683
垢版 |
2013/11/26(火) 17:37:09.36
83です、申し訳ございません、整理させていただきます。
あるテキストファイルから1箇所ずつint型で数値を抜き出して
Mat型に格納したいです。Matに格納後、中身を確認したところ、
整数値ではなく浮動小数点で全く違う値が示されてしまいます。

0〜255の数値を「,」で区切った、
32行×500列の以下の様なテキストファイルが有ります。
2, 32, 255, ・・・(32行)

このテキストファイルから1箇所(,で区切られた数値)ずつ抜き出して
int型にして下記のようにmatに代入していきます。
mat.at<int>(x,y) = (int)val; //valは正常な数値を示しています。
008783
垢版 |
2013/11/26(火) 17:41:15.81
そしてその後 以下のようにして中身を表示します。

for (int i = 0; i < mat.rows; i++) {
    Mat d(mat, Rect(0,i,mat.cols,1));
    cout << d<< endl;
}
しかし、ここで [2.8025969e-045, 4.4841551e-044, ・・
のように浮動小数点で全く違う値が表記されてしまいます。
正確に表示させられるようにするにはどうすればよろしいでしょうか。
0089デフォルトの名無しさん
垢版 |
2013/11/26(火) 19:01:57.22
>>87
よく分かってないけど、mat.at<int>って、doubleとintの間で数値を変換してるわけじゃなくて、
ポインタのキャストみたいに本来doubleの所に無理やりintの値を書き込んでるのでは?
009183
垢版 |
2013/11/27(水) 21:45:12.28
>>89
返信ありがとうございます。そのようですね…
Mat_ <int> で宣言することでintを扱うことが出来ました。
皆様有り難うございました。
0094デフォルトの名無しさん
垢版 |
2013/12/02(月) 00:58:13.62
http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html
質問です。このページのSurfの特徴検出・抽出器をORBに変更しようとしたのですがうまくいきません
変更箇所は2つで
SurfFeatureDetector detector( minHessian );から
OrbFeatureDetector detector( minHessian );と

SurfDescriptorExtractor extractor;から
OrbDescriptorExtractor extractor;です

探索方法は変更せずflannのままで行いたいです。お願いします
0095デフォルトの名無しさん
垢版 |
2013/12/02(月) 02:28:21.80
>>94
詳しくは調べてないけど、flannのmatcherだとorbやfreakで落ちる。freakのサンプルみたいにBF matcherではいかんの?
0096デフォルトの名無しさん
垢版 |
2013/12/02(月) 03:21:12.84
>>95
大量の画像とマッチングする予定なので「力づく」の探索はどうにも・・・

http://opencv.jp/opencv2-x-tips/changelog_from_22
ここにある「BRIEF と ORB 局所特徴量に対する,非常に高速な LSH matcher」がflannだと思っていましたので

新たに検索してみたところ
http://opencv-users.1802565.n2.nabble.com/how-to-use-the-ORB-descriptor-td6606424.html
このページがそれに該当するようなのでもう少し見てみます
お騒がせして申し訳ありませんでした
0097デフォルトの名無しさん
垢版 |
2013/12/08(日) 02:10:22.87
画像処理の論文は理想的な画像でやってるのばっかだから
0099デフォルトの名無しさん
垢版 |
2013/12/14(土) 17:26:45.78
kinectと組み合わせてプログラム書いてんだけど
CV_16UC1のcv::Matのdataにushort型の値を代入しようとしたらucharにキャストされる。
16UC1でメモリ確保してるんだしなにかうまい代入方法ってない?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況