【Intel】OpenCV総合スレ 5画素目【画像処理】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2013/10/25(金) 17:28:16.71
OpenCVはインテルが公開したオープンソースのコンピュータービジョンライブラリ。
現在はWillowGateが開発している。

本家
http://opencv.willowgarage.com/wiki/

日本語資料など
http://opencv.jp/


【Intel】OpenCV総合スレ 4画素目【画像処理】
http://toro.2ch.net/test/read.cgi/tech/1329040627/
2013/11/25(月) 22:00:16.44
CvMatとMatのことで悩んでおります。
以下のCvMat型の表記をMat型に直すにはどうすればよいのでしょうか。
ご存知の方いらっしゃったらご教授下さい。

CvMat *cvMat;
CV_MAT_ELEM(*cvMat, int, x, y) = value;
8483
垢版 |
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が正しく初期化されていないとエラーが出てしまいます。
対策方法有りましたらご教授お願いします。
2013/11/26(火) 01:34:13.43
何をやりたいか整理して話してください。
・使いたい型はuchar?float?
・チャンネル数は1?4?
・書き込みたい値の型はint?
いろいろ混ざりすぎて何やりたいかさっぱり
8683
垢版 |
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は正常な数値を示しています。
8783
垢版 |
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, ・・
のように浮動小数点で全く違う値が表記されてしまいます。
正確に表示させられるようにするにはどうすればよろしいでしょうか。
2013/11/26(火) 18:45:15.35
cout << (int)d<< endl;
2013/11/26(火) 19:01:57.22
>>87
よく分かってないけど、mat.at<int>って、doubleとintの間で数値を変換してるわけじゃなくて、
ポインタのキャストみたいに本来doubleの所に無理やりintの値を書き込んでるのでは?
2013/11/27(水) 13:00:00.30
>>82
すいません、よく見たら2.4.3のリファレンスでした
9183
垢版 |
2013/11/27(水) 21:45:12.28
>>89
返信ありがとうございます。そのようですね…
Mat_ <int> で宣言することでintを扱うことが出来ました。
皆様有り難うございました。
2013/12/01(日) 02:48:23.32
boost.gilを何で使わないの
2013/12/01(日) 09:30:17.78
boostが嫌いだから
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のままで行いたいです。お願いします
2013/12/02(月) 02:28:21.80
>>94
詳しくは調べてないけど、flannのmatcherだとorbやfreakで落ちる。freakのサンプルみたいにBF matcherではいかんの?
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
このページがそれに該当するようなのでもう少し見てみます
お騒がせして申し訳ありませんでした
97デフォルトの名無しさん
垢版 |
2013/12/08(日) 02:10:22.87
画像処理の論文は理想的な画像でやってるのばっかだから
2013/12/08(日) 08:51:18.69
たくさんの画像セットで実験してみて一番良い結果が出るものを載せます
2013/12/14(土) 17:26:45.78
kinectと組み合わせてプログラム書いてんだけど
CV_16UC1のcv::Matのdataにushort型の値を代入しようとしたらucharにキャストされる。
16UC1でメモリ確保してるんだしなにかうまい代入方法ってない?
2013/12/14(土) 23:26:59.31
>>99
cv::Mat_<ushort>を使う
2013/12/15(日) 01:51:12.29
>>100
.dataでアクセスしたら相変わらずucharじゃねえかって思ったら()でアクセスできるのか。
dクス
2013/12/16(月) 15:21:08.36
static_cast<ushort *>(mat.data)[i]とかじゃない?
dataって一応uchar *の型が指定してあるだけの単なるポインタだよね。
2013/12/16(月) 15:21:57.98
すまん間違えた、static_castじゃなくてreinterpret_castだった。
2013/12/18(水) 11:52:23.56
SIFTを組んでいるのですがコンパイルはできても実行すると実行停止してしまいます。
どうやらキーポイントの数(配列の要素数)が6億個もでてることが原因っぽいです。
なにか解決方法はありますか?

一応主なソースは↓です
cv::SiftFeatureDetector detector(0.04,10.0);
cv::SiftDescriptorExtractor extractor;
cv::Mat descriptors1;
extractor.compute(grayImage1, keypoints1, descriptors1);

環境はvs2010、opencv2.2です。
2013/12/18(水) 12:36:58.31
入力画像の先鋭度を測るプログラムはOpenCVで作れますか?
2013/12/18(水) 14:06:23.74
>>105
すみません自己解決しました。
どうやらリンカの設定が甘かったようです。
ありがとございました。
2013/12/18(水) 23:08:53.76
>>104
ver2.42以降を使う
108デフォルトの名無しさん
垢版 |
2013/12/20(金) 14:54:14.84
traincascadeから出力したxmlは、haartrainingから出力したxmlと中身というか書式が違いますよね?
2013/12/21(土) 21:44:55.09
OpenCV 2.4以上、VS2010でOpenEXR対応の
64bitビルドを行いたいのですが、必要な
ライブラリとか手順とかの情報ってどこかに
まとまっていないでしょうか?
そもそも、このような構成でのビルドは可能ですか?
OpenCV単体のビルドは何度かやっているのですが、
外部ライブラリとの連携は未経験です。
110デフォルトの名無しさん
垢版 |
2014/01/01(水) 23:45:38.65
画像を回転させると角が切れちゃうんですが、バグですか?
2014/01/02(木) 20:02:40.98
昔からあるバグだな諦めろ
今時、opencvなんて使うのはダサイ
2014/01/02(木) 20:29:34.31
それのどこがバグなんだ
2014/01/02(木) 20:47:44.38
OpenCVではそのような仕様です。
2014/01/03(金) 01:10:20.29
額縁の中で絵を回転させたら角っこがはみ出るのと同じ。
額縁の大きさ(画像サイズ)を変えないと。
2014/01/04(土) 14:47:26.55
今時OpenCVって・・・
オワコンじゃん
2014/01/04(土) 14:56:27.13
115殿には是非今一番アツいCVライブラリを
御教示頂きたいものだ。

もっとも、OpenCVが何かと難有なのは同感だし、
結局選択肢がないからこれ使ってるってCV技術者が
大半なんだろうな。
IOさえ何とかなれば、その他の演算処理は
自前で組んだ方がややこしいドキュメントを
隅から隅まで読むのより早かったりするし。
2014/01/05(日) 02:10:55.87
リンクスのHalconとかいいらしいよ
でもこれ個人で気軽に買える類のものじゃないね
どこで売ってるのかわからないし、値段も公開されてない
MatlabとかもそうだけどAmazonとかで気軽に買えるようにしてほしい
2014/01/05(日) 02:21:41.72
おまえらは人が作ったライブラリがなきゃなにも作れねーのかよw
2014/01/05(日) 02:22:32.58
OpenCVをC++から使ってクソ使いにくいって思ってる人は
Pythonから使ってみるといいよ、ダメダメな設計のcv::Matじゃなくて
Numpyで多次元配列扱えるから遥かに使いやすい
速度は多少残念なことになるけど
未だにIplimage使ってる人は絶滅して
2014/01/05(日) 02:24:39.67
車輪の再発明だらけになって
どこの誰が書いたのか分からない糞コードが氾濫するような世界は嫌だよ
定番のライブラリがあったほうが絶対いい
121116
垢版 |
2014/01/05(日) 17:24:58.33
>>117
Halconは職場で使ってるけど、オープンじゃないのがね。

>>119
俺は99%Pythonからしか叩かないわ。
実行速度は課題だけど、C++特有のストレスから
解放されるだけでも十分使う価値あると思っている。
122デフォルトの名無しさん
垢版 |
2014/01/05(日) 23:51:23.11
c#のラッパー不便だわ
2014/01/06(月) 11:45:26.63
OpenCV3.0から公式でC#対応だからそれ待とう
2014/01/07(火) 22:43:16.45
cv::imreadで画像を読み込む場合、その画像が
カラーテーブルを持っているかどうかはどうやって判断するんですか?

気にせず読み込めますが、グレースケールの画像を読み込んだのに
グレースケールボタンが押せるのはおかしいので・・・
2014/01/08(水) 05:07:41.61
Halconなんて工業製品のパターンマッチングとかで使われる高価なパッケージでしょ
そりゃフリーなら喜んで使うけどOpenCVスレで何言ってんの?って感じ
2014/01/08(水) 13:44:04.71
お金なら払うからOpenCVの呪縛から逃れたい
2014/01/08(水) 13:48:23.96
>>124
cv::Matのチャンネル数見るとかかな?
チャンネル数1ならグレースケール画像
チャンネル数3ならカラー画像
2014/01/09(木) 00:14:07.27
最近は画像の入出力にしか使ってないや
読み込んだあとはEigenに変換してる
2014/01/10(金) 03:15:52.96
Python版はNumpyに放り投げてるわけだし
C++版もcv::Matとかクソ扱いにくい仕様やめて
Eigenに放り投げるよう再設計すべきだよね、常々思うわ
2014/01/10(金) 03:37:29.21
内部でEigen使ってなかったか
確かコンパイルに必要だったような
2014/01/10(金) 07:00:59.79
確かにEigenは必須ライブラリだったはずだけど、
cv::Matは画素アクセスとか面倒だよね。
2月にはOpenCV3.0出るって言ってるけど、
使いやすくなってるのかな。
2014/01/10(金) 18:58:18.52
新しいバグが皆様をお待ちしています
2014/01/11(土) 09:26:40.10
どんな言語もフレームワークの善し悪しで流行る・流行らないが決まっちゃうほどだし
やっぱライブラリの使用が如何に簡潔で解り易いかってとても重要だと思うなー
逆にプロプライエタリなフレームワークが使い易かったことって一度もないけど
2014/01/14(火) 23:39:42.24
画素アクセスをsrc(y,x,ch)みたいな仕様にしなかったのは何でだろうね
2014/01/16(木) 19:30:45.40
Python版はその仕様だよ、みんなC++やJavaみたいなクソ言語は捨ててPythonを始めよう
2014/01/16(木) 23:42:16.16
pythonは一度も触ったことないんだけど、MATLABみたいな感じ?OpenCVの関数は基本的に全部移植されてるの?
2014/01/17(金) 01:00:01.15
俺もPython良く知らないんだが
Pythonの新しい企画には対応してないとかなかったっけ?
2014/01/17(金) 17:49:43.20
OpenCVがpython3に対応したら、おれもpythonの勉強するんだ...
2014/01/17(金) 23:00:57.70
>>136
基本的な機能は抑えてるけど新機能は対応してないことも多々あるね
例えばこのあいだの動画の超解像とか
個人的にはヘタするとMatlabより使いやすい

>>137
Python3には対応してないけど対応する予定はあるらしい
互換性はないけどPython2でも3でもたいして変わらない
2014/01/21(火) 11:09:40.56
IplImage *pImg = cvCreateImage( ... );
{ cv::Mat M( pImg ); }

これって画像は破棄されるの? されないの?
2014/01/25(土) 22:56:28.93
JavaScriptは3日で覚えたけど(jqueryは使ってない)PythonもLLだからそのくらいで習得できるかな?
2014/01/25(土) 22:59:03.03
JavaScriptを本当に3日でマスターしたならPythonなんて半日だ
2014/02/07(金) 16:09:11.13
visualstudio2013にopencv.netを導入したのですが
CreateImageのようにサイズを指定して画像を作成するにはどのようにすれば良いですか?
OpenCV.Net.CV.CreateImageを実行したいのですができませんでした.
2014/02/12(水) 20:04:30.21
マッチテンプレートでOCRを行いたいと考えています
文字列と同じように空白もマッチングしたいのですが、空白を与えても上手く検出できません

なにかよい方法はありませんか?
2014/02/12(水) 21:21:09.67
まずテンプレートマッチングによるOCRを諦めよう
2014/02/12(水) 21:44:08.93
切ない
2014/02/13(木) 00:53:20.34
空白以外が検出できているなら文字間隔から空白があるか予測して補間すればええやろ
2014/02/14(金) 20:04:07.02
[速報] STAP細胞に捏造の疑い
http://hayabusa3.2ch.net/test/read.cgi/news/1392271386/


画像処理の専門家の皆様
検証してください
2014/02/17(月) 01:14:00.03
同じ細胞から作ったコピー細胞なら画像似てても仕方ない気がするが
2014/02/19(水) 16:00:08.31
簡単に技術盗まれないように
肝心な部分はぼかしてるんだよ
2014/02/23(日) 14:28:02.11
パンチルトカメラで顔を追いかけるプログラムって
どこかで公開してないでしょうか
2014/02/23(日) 14:58:38.80
顔の座標とれるんだったら
一定時間でとり続けて差分でどっち動いたか判断してそっちにカメラ動かすだけだろボケが
自分でやれよ。
2014/03/01(土) 10:06:44.01
>>151-152
IPカメラのIPアドレス指定してCvCaptureに動画をとりこむことは出来るけど
パンチルトカメラの首を動かす方法がカメラの種類によってコマンドが違うみたい
カメラの首を動かす方法はどうやって調べたらいいのでしょうか

http://robocv.blogspot.jp/2012/01/using-your-ip-camera-with-opencv.html
perl cgiでコントロールできるモジュールが
あるみたいな記述があちこちのサイトにあるけど
その肝心のソースコードがどこさがしてもない
2014/03/01(土) 10:58:08.87
共通規格があるわけでもなし当たり前のような気がする
2014/03/01(土) 11:14:43.25
http://www.openipcam.com/forum/index.php?topic=174.0
>yes you can control most of the functions from any language via http protocol as detailed in the IPcam CGI Manual

http://www.openipcam.com/files/Manuals/IPCAM%20CGI%20SDK%202.1.pdf
156デフォルトの名無しさん
垢版 |
2014/03/03(月) 01:19:53.97
OpenCV初心者です

現在OpenCV2.4.7を使用しています
かなり基礎的な質問で申し訳ありませんが、2.4.7内の関数の使い方を全部掲載しているサイトなどはありますか?
2014/03/03(月) 06:52:13.31
2.4.7にこだわる必要は?
英語は読めるか?
2014/03/03(月) 07:32:37.24
読めたらこんな肥溜めで聞かないっすよハハハご冗談を
2014/03/03(月) 07:50:12.86
じゃ、中学英語からやり直しだな。
160デフォルトの名無しさん
垢版 |
2014/03/04(火) 04:07:36.16
英語は読めます
学生で、部活内で使われているものが2.4.7です

2.4.7でなくともそれに近いものであれば構いません

教えていただけると幸いです
よろしくお願いします
2014/03/04(火) 05:41:42.38
じゃ内蔵か公式でいいだろ。
162デフォルトの名無しさん
垢版 |
2014/03/05(水) 00:57:21.51
公式→ http://docs.opencv.org/2.4.7/
まぁ本当に全部っていうとソース読めってなるんだけど
163デフォルトの名無しさん
垢版 |
2014/03/05(水) 03:30:21.82
>>162
ありがとうございます!
2014/03/16(日) 11:42:13.20ID:jg6pkE2L
OpenCVのプログラムコードの一部だけ論文に転載するのって
著作権的にはOpenCVへのリファレンス書いてたら問題ないの?
165デフォルトの名無しさん
垢版 |
2014/03/22(土) 20:56:49.83ID:k2pZAvlI
opencvで手を検出する方法って無いかな?
2014/03/22(土) 23:48:35.77ID:vWqdj/xE
手を学習させるしかない
2014/03/22(土) 23:58:03.89ID:Nsic/UJL
このスライドでOpenCVでのおっぱい検出を紹介してる
http://www.slideshare.net/yusukebe/oppaidetect-3

おっぱい画像の代わりに手画像を使えばよし
2014/03/23(日) 18:08:13.43ID:Zo8uS5e/
僕はおっぱいの方がいいです
2014/03/24(月) 10:44:54.88ID:LYAKQKT8
OpenCVでジャンケン処理のがあったような
170デフォルトの名無しさん
垢版 |
2014/04/01(火) 00:11:48.63ID:+BzQu1X1
WindowsでMinGW版無くなっちゃったのか。
VC版はやたら充実してるけど。
2014/04/08(火) 01:19:18.31ID:1cdjmKJQ
OpenCVの超解像度処理
http://whoopsidaisies.hatenablog.com/entry/2013/12/03/021133
と、この超解像度処理ってどっちが画質いいの?
速度は別に遅くていい
http://cas.eedept.kobe-u.ac.jp/WelcomeES1/OpenSoft/SRApplications/
http://loggialogic.blogspot.jp/2012/06/neurondoubler.html
2014/04/08(火) 10:55:45.86ID:jqyPRMUU
画質良いの定義が難しいからなー
画像によって処理が合ってるかも変わるだろうし
自分でやってみて拡大してみるのが一番いいんじゃね
2014/04/09(水) 05:28:50.56ID:kyXLUR/c
>>171
サンプルプログラム
opencv-2.4.8.2/samples/gpu/super_resolution.cpp
がコマンドラインから超解像動画を自動生成できるみたいなのですが
1分ぐらいの動画でも一晩ずっと動かしてもとまらなくて
生成した途中結果表示みてみると
最後まで行った後、まさ最初に戻って何度も同じ動画を処理してるみたいです
バグでしょうか?
main内のforループも終了条件ないですし
2014/04/09(水) 05:35:53.50ID:kyXLUR/c
>>173
http://stackoverflow.com/questions/18151806/superresolution-nextframe-bug

同じエラーだと思うけど
見当違いな回答ついてた

どうやって無限ループ止めて、変換された動画を保存すればいいんだ
2014/04/09(水) 10:32:57.88ID:+JqWH5tw
動画の補完限定なん?
静止画数枚でテスト出来ないんかな
2014/04/10(木) 21:10:26.65ID:0LeWO1pv
>>175
>静止画数枚
の例らしきものも同じディレクトリにあった
2014/04/16(水) 04:46:28.93ID:GTugkpJK
暗い部分だけ選んで明るくするというの
http://aska-sg.net/psegogo/pse007-20051207.html
Photshopでは出来るみたいだけど

OpenCVにはそういう関数ないの?

あとインターレスのノイズも消したい

vReavalという超解像のソフトがなくなってしまって
それが持ってる機能が欲しい
2014/04/16(水) 04:56:22.60ID:GTugkpJK
https://groups.google.com/forum/#!topic/javacv/nU-RyyGV1Q0
grabber.setDeinterlace(true);
なんて機能があるんだな
2014/04/16(水) 05:01:35.49ID:GTugkpJK
http://stackoverflow.com/questions/11176585/how-remove-shades-from-partially-shaded-image
影の除去はOpenCVの中にないみたいで
誰かの書いたプログラムを使うしかないみたいだ
2014/05/01(木) 00:05:58.73ID:ZaFC896P
Javaで画像処理をしたいと思い、勉強してます。
JavaCVではなく、OpenCVのJavaライブラリを使ったプログラムを
勉強できるサイトなどありましたらご紹介いただけないでしょうか?

書籍は「Javaで始めるOpenCVプログラミング」を読んでいます。
2014/05/02(金) 18:14:12.21ID:FavlRh/W
OpenCVのPythonインターフェイスが
次々と出来ては消えて行くのは
何故?
2014/05/02(金) 19:06:28.99ID:3yVYO9UY
C#でOpenCVSharpのBitmapConverterってどうやって使うんですか?
名前空間OpenCvSharpには存在しませんでした
環境はVS2013でパッケージはNuGetを使ってOpenCvSharp x64を使ってます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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