【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/
586デフォルトの名無しさん
垢版 |
2017/03/17(金) 08:53:58.79ID:SdZqx0Vp
>>585
とりあえず640試してみます
2017/03/17(金) 09:14:45.13ID:8bvhsZ+L
opencvの取り込み処理とかウインドウ表示とかはちょこっとopencv使いたいとき向けのでしょ
きちんと使いたいときは取り込み処理を別に用意したほうが・・・
588デフォルトの名無しさん
垢版 |
2017/03/17(金) 09:48:03.86ID:SdZqx0Vp
>>587
そっちの方面も視野にいれてます
初心者過ぎるので、簡単なやつ希望です…
2017/03/17(金) 11:09:35.47ID:SUVPLko4
だーかーらー、カメラ標準ソフトを使うとか、
せめて取説や仕様書を読めと
作る側は「簡単な物」ほど作るのは難しいってことを理解しとけ
2017/03/17(金) 11:11:46.60ID:SUVPLko4
あと、ハードウェアに出来ないことはソフトウェアには出来んからな
解像度やFPSの仕様以上のことをやらせようとしたら、
超解像とかハードルが一気に高くなる上に、あくまで「作られた画像で補完」になる
591デフォルトの名無しさん
垢版 |
2017/03/17(金) 12:11:55.75ID:ol/nseXL
>ハードウェアに出来ないことはソフトウェアには出来ん

日本語の使い方が正しくない
592デフォルトの名無しさん
垢版 |
2017/03/17(金) 12:22:39.49ID:SdZqx0Vp
>>589
カメラ標準ソフトか…
ロジクール製品なんだけど、取説とか仕様書はないに等しかった
>>590
スペック通りに動かしたいだけなんだ
とくに解像度はどうでもいい
2017/03/17(金) 12:56:05.45ID:mRKEvJ0A
>>591
理解が正しくないよ
>>590が言ってるのは30fpsまでしか対応してないカメラで100fpsの映像を造りだすみたいな話

>>592
webカメラの製品独自の仕様はそれであるけど、探すだけ無駄。ほとんど非公開だろ
汎用的にwebカメラを制御する仕様はほぼ統一されてるしぐぐりゃ星の数ほど出るからそれ見ろ。それすら探せないってなら諦めろ
2017/03/17(金) 13:09:25.79ID:ol/nseXL
>理解が正しくないよ
> >>590が言ってるのは30fpsまでしか対応してないカメラで100fpsの映像を造りだすみたいな話

この意味なら漏れの理解したまんまだな
2017/03/17(金) 14:55:16.33ID:1Ef8W1sh
今してるのはハードウェアでもOpenCVでもできることの話だろ
なぜまずOpenCVのマニュアルを確認しないのかは知らないが
2017/03/18(土) 00:30:42.66ID:+usu446B
オートフォーカスとか露光の自動調整は本格的な画像処理するときにまずつまずく部分
2017/03/21(火) 14:26:08.25ID:jINUaUr9
<オートフォーカスや露光調整くらいは画像処理でやって
<リアルタイム60fpsで、画面解像度はFUHDで、分解能も8bitじゃなく16bitでやってね
<民生品でやってるから、そのくらい簡単に出来るでしょ?
2017/03/21(火) 14:50:57.93ID:6WWBsw/3
民生品はOpenCV使ってますん
2017/03/22(水) 17:33:09.53ID:/LjNvXVg
Qtバックエンドのウィンドウでマウスコールバック取るにはどうすればいいんだ?
2017/03/22(水) 17:57:34.76ID:+8Koiwe2
なぜここで聞こうと思った
2017/03/22(水) 17:59:44.99ID:/LjNvXVg
Qt組み込んだだけで本体はhighguiのウィンドウじゃないの??よく分からないけど
2017/03/22(水) 21:23:50.72ID:Am7axbJi
よく分かってから来て
2017/03/22(水) 21:29:57.62ID:5RpsXBhr
よく分からないのでそこをなんとかお願いします。
マウス座標が取得できなくて大変困っております。
2017/03/22(水) 21:52:58.22ID:dZZlEx+4
何故最初は小さいプログラムから作らないのか
qtとOpenCVでマウス座標取ってこい
2017/04/12(水) 12:58:22.47ID:nbU1pLts
>>544
これ教えて気になる
2017/05/09(火) 12:58:13.16ID:l4i4sD4Y
opencv3.1で
connectedComponentsWithStats使ってラベリングしたんだが
指定した面積以下はラベリング除外ってできる?
2017/05/09(火) 12:59:17.10ID:l4i4sD4Y
>>606
言語はC++でVisualStudio2015
2017/05/09(火) 21:44:28.31ID:7f7VtSL1
それぐらいの処理ならソースコード読んで自分で組み込んだらいいんじゃね
2017/05/13(土) 22:46:00.69ID:uY4Y4Qvj
>>606
そのまんま、ラベリング結果を操作するだけでいいと思うけど。どんな動作を想定しているの?
2017/05/14(日) 12:58:05.16ID:RW4x4SJY
>>609
指定面積以下にはラベル付けをしない

今は無理やりラベリングした結果の面積をif文で無理やり指定面積以下のラベルを表示しないようにしてる

だからラベル番号表示すると飛び飛びなんだよね

最終的にはラベル番号がちゃんと連番かつ面積以下を除去できるようにしたいわ
2017/05/14(日) 13:04:18.40ID:RW4x4SJY
あとラベリングした輪郭が途切れたりしてるからラベリング統合みたいなのできたらいいなって今考えてる
2017/05/14(日) 13:12:28.18ID:Eay2zfQC
変数作って指定面積以下ならラベリング結果を格納するようにして採番したらいいだけでは
2017/05/14(日) 14:18:03.85ID:e/yCKCsM
>>612
これをそのままプログラムにすればいいと思う。
2017/05/14(日) 14:59:19.86ID:RW4x4SJY
それでいくわ
2017/05/18(木) 17:02:45.98ID:ZPY3GgIW
ラベリングで物体ごとにラベリングできないから領域統合してうまくラベル付けできるようにしようとした

watershedで出来ないかやってみたらラベル付けができなくなっちゃった

なんかいい方法ない?
2017/05/18(木) 17:03:48.78ID:ZPY3GgIW
肝心なの忘れてた
環境は
opencv3.1 c++ visual studio 2015
2017/05/19(金) 08:58:34.15ID:fhP/8zas
>>615
何で物体ごとにできないの?画素がつながってないから?
2017/05/19(金) 12:52:27.14ID:hTRs5dEo
>>617
複雑な形かつ輪郭が繋がってる部分もあるから
一つずつラベリングしたいけど二つまとめてとかになってしまう
2017/05/19(金) 15:15:31.69ID:vqbyNvRL
そういうのはどういう画像かによるからエスパーじゃなきゃわからないよ・・・
2017/05/19(金) 16:45:09.18ID:hTRs5dEo
例えばこういうのをちゃんと家は一つずつラベリングしたい
http://i.imgur.com/hOIzShz.jpg
2017/06/08(木) 16:52:15.55ID:IPntxoR8
公式でC#に対応してくれんかな
OpenCVSharpの人とか頑張ってくれてるけども
2017/06/27(火) 09:09:26.10ID:WuBzCuMJ
質問です。

cv::Matに画像ファイルを入れる場合は、cv::imreadなのはわかりました。

unsigned char Gray[Y][X]のようなバッファを、cv::Matに代入するには、どうするのでしょうか。
2017/06/27(火) 12:34:28.92ID:u30jKple
for文をネストして多次元配列の中身を一つひとつ丁寧にdataメソッドでMatクラスに移植する
2017/06/27(火) 12:36:16.05ID:Tb4zoP8Z
>>623
コスト大www
2017/06/27(火) 12:40:05.25ID:ZZnYACXF
>>623
俺のアルゴリズムぱくんなよ
todo修正コメントは入れとくがw
2017/06/28(水) 13:53:10.62ID:AJijq7Zo
>>622 もヨロ orz
2017/06/28(水) 15:43:27.90ID:7M5wzg7m
回答すでに出てんじゃん
628デフォルトの名無しさん
垢版 |
2017/06/29(木) 21:45:32.05ID:yY3IPXDE
赤青のLEDを別々に認識させたいんですが、RGBの閾値よりHSVのほうがうまく認識させられますかね?
629デフォルトの名無しさん
垢版 |
2017/06/29(木) 21:52:54.97ID:yY3IPXDE
あとカメラのオートフォーカスや露光調節をしたいんですが、highguiでは無理ですか?
2017/06/29(木) 22:04:22.04ID:grguhP+/
>>628
場合による
色空間のチャンネルをsplitしてinRangeメソッドで判定するのがスマート

>>629
v4l2-ctl --set-ctrl=contrast=0
631デフォルトの名無しさん
垢版 |
2017/06/29(木) 22:44:13.36ID:yY3IPXDE
>>630
opencvでは無理なんですね…
プログラミング全然できない自分にとっては敷居が高そうです
2017/06/30(金) 01:43:05.65ID:KO2sHkgv
ステレオマッチングでなんかやろうとおもってggったんだが、ネットに落ちてるサンプルコード的なのがまったくうごかん助けてくれ…
Xcodeで動かしてるんだけど、なんとか修正しようとしてもcvLoadImageがNULLしか返さん
2017/06/30(金) 06:49:52.85ID:vX1gPFnk
エスパー募集中か
2017/06/30(金) 09:36:32.42ID:sEv9UkGQ
>>630
>色空間

一般的にどんなのがあるのでしょう。

次元が多いもの、付加情報足せるものとか、あるのでしょうか。
2017/06/30(金) 09:40:09.91ID:arYqdS+0
>>631
カメラ制御はカメラのライブラリを使え。
OpenCVにあるのは基本的にwebカメラを最低限に動かす程度、ってか全てのカメラを制御するコマンドなんてエスパーじゃないと作れん。
カメラ制御コマンドに共通規格がある訳じゃないし。
2017/06/30(金) 11:57:24.36ID:msOIpcgS
cv::imread使えよ>>632
そんな化石みたいな関数使ってもいいことない
とはいえどうせ画像パスがサンプルコードのままとかいうオチだろうけど
2017/06/30(金) 12:52:20.08ID:3nIvuxBC
初級2ちゃんエスパー検定試験開催中
638デフォルトの名無しさん
垢版 |
2017/06/30(金) 17:53:01.15ID:aYaCN+Zi
>>635
教授にUSBカメラのデバイス設定で露出とかそういうの変えられるでしょ?みたいに言われたんですが、制御、設定するプログラミングを別で組まない無理ですよね?
2017/06/30(金) 18:17:42.49ID:da6qsFRC
何したいのか知らんけどガンマ補正かけたりして補正するんじゃだめなんかい
せっかくのopencvだからそういう使い方しようよ
あくまでソフトだから、基本的にハードの制御は他でやるべき
2017/06/30(金) 18:35:58.87ID:hhb/IL1e
「USBカメラのデバイス設定」はopencvじゃないでしょ
USBカメラのデバイス設定では変えれるし、例えばwindowsなら汎用の設定方法が用意されてるからそれ使えばプログラム上から設定できる
2017/06/30(金) 19:51:51.32ID:AWyPN87J
>>636
レスありがとう
パスは変えてるよ、流石に
cv::Mat使ってみたんだけど俺の理解力不足なのかまったく使い物にならん

http://daily-tech.hatenablog.com/entry/2016/06/25/233203
このブログの3個目のプログラムなんだが、CVStereoGC〜ってやつはぜんぶGC→BMって変更加えるってことしかわからんかった

誰か詳しく教えてエロい人
2017/06/30(金) 20:33:12.86ID:X7AokIbD
何で2016年にIplimageとか使ってんだよ・・・w
matに書き換えるのきついならとりあえずデバッグしてみーよ
そもそもエラーメッセージは何?
2017/06/30(金) 23:32:35.26ID:X7AokIbD
ちょっと調べてみたら
StereoGCちゃんは3.系になったときにリストラされてるねwドマーイ
2017/07/01(土) 00:44:28.30ID:AOCuOCf0
http://ishidate.my.coocan.jp/opencv_20/opencv_20.htm
2017/07/01(土) 00:52:05.72ID:6uo9+xqb
それ2.系のソースだから多分動かんよ
2017/07/01(土) 02:49:09.69ID:PHrzZsba
>>632 です

>>643
まじすか、2.4.13.2でもないっぽいんでGC系は削除されてるんすね…

>>644
はビルド通ったけど実行したら怒られましたね

>>641
の修正したけどエラー出るソース乗っけた方がいいですか?長いしクソコードです
2017/07/01(土) 03:32:55.02ID:WKIxAUak
意訳「まだエスパー検定試験した方がいいか?まだ続けようか?」
2017/07/01(土) 07:28:05.90ID:JzB6kPFv
ステレオマッチングなんてそこら中にすぐ動くソースあるんじゃねえの
めんどくせえからキネクト買え
2017/07/01(土) 08:26:57.30ID:bop7+UjN
まさかの2.系使いかよ
それでそのソースが動かないということは、環境に問題がある気がする
まずこのレベルのは動くのか?
https://reiji1020.gitbooks.io/play-opencv/content/sample-code.html
2017/07/01(土) 18:13:02.62ID:wwhF2J4h
hough変換調べてるとよく

http://i.imgur.com/obLDsYA.png
こういう画像見かけるけど
これってどうやって作成するのだ?
2017/07/01(土) 20:29:53.52ID:XI3Ts6Pa
>>649
バリバリに動くよ

もちょい調べたら
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11160807996
のソースで動いた
は 書いてること同じのような気がするんだが何が違うのか…
一同ありがとう
IplImageじゃないと動かないみたいだし, Matからの変換も上手くいかないし大人しく化石つかうわ

IplImageってOpenCV界隈じゃもうクソ規格なのかい?
2017/07/01(土) 21:15:51.07ID:g4C1aejJ
opencvのバージョン何?

クソ規格というか、もはや使われていない
過去の遺産的に一応残っているだけ状態
2017/07/01(土) 21:36:43.80ID:XI3Ts6Pa
>>652
上にも書いてる通りに2.4.13.2だよ
3.x系が最新で遺産が多い2.4.x系がメンテ程度に更新されてるって認識でいいのかい?
最近触ったばっかだからまったくわからん
2017/07/01(土) 22:11:02.32ID:g4C1aejJ
少し違う
3系でもまだ一応遺産は残ってる
ただ新しい関数ではもちろん使われないし、
StereoGCちゃんのように随時削除されていったりする
2017/07/01(土) 22:12:56.09ID:g4C1aejJ
だからどうしてもStereoGCちゃん使いたいから旧版使わないといけない!
とかいう場合を除いて基本的に最初に入れる時は最新版の導入がよいよ
2017/07/02(日) 02:20:04.60ID:2KVVeWR1
>>655
できればStereoGC使いたかったんだけど、これ以上頭混乱したくないし大人しくStereoBMで我慢しとく
丁寧な説明トンクス またわかんないことあったら来るよ
657デフォルトの名無しさん
垢版 |
2017/07/03(月) 13:20:20.57ID:3bAoRzZo
Iplimageって過去の遺産なのか…
カメラから画像取得でずっとIplimage使ってたわ
2.4.9です
2017/07/03(月) 13:43:34.00ID:v5BZipuQ
なんで遺産なん?
659デフォルトの名無しさん
垢版 |
2017/07/03(月) 14:15:23.22ID:3bAoRzZo
質問です
画像を二値化したとき、白の集団が二つあり、それぞれで認識させるってことは可能なのでしょうか?
2017/07/03(月) 18:59:16.39ID:m1etFu0O
findcontoursやラベリング関数で出来そう
2017/07/03(月) 19:21:30.93ID:Lbjam2Yy
なんで画素が連続してる前提なんだよ
集団が2つと既知ならk-meansを使えばいい
2017/07/03(月) 19:36:31.70ID:pS+W+qPk
モルフォロジー変換してk-meansでよさそう
2017/07/04(火) 01:45:34.62ID:rUXogfnF
なんでそんな喧嘩腰なんだよ
2017/07/04(火) 02:39:23.60ID:48gcNEwZ
戦闘民族だから
2017/07/10(月) 05:08:46.49ID:ImHRmJ7/
opencv超初心者なんですけど、カメラによるリアルタイムの映像にping画像を透過することって出来ますか?
2017/07/10(月) 11:45:11.85ID:H0WRdEPX
できる
2017/07/10(月) 17:22:42.80ID:Txcdp1OI
スーパーダサイヤ人
2017/07/19(水) 00:43:07.30ID:nwQCI0l5
誤差拡散(たとえばFloyd-Steinberg)で二値化したい場合ってバカ正直に1ピクセルずつ読んで散らしていくしかないのか?
特にインタプリタだと処理時間がバカにならないんでOpenCVの機能を使って速く計算出来ないのかな
OpenCVで計算できないのであればMatのピクセル値とインタプリタの配列を高速に相互変換出来る方法でも良い
ruby-opencvでやっているけどRubyがピクセル値を計算している時間よりMatを読み書きしている時間の方が長いw
2017/07/19(水) 01:05:45.68ID:Ncz3nPsY
高速化したい部分をC/C++で書け
670デフォルトの名無しさん
垢版 |
2017/07/19(水) 11:33:49.64ID:+fK80sDM
そこでFPGAですよ
2017/07/20(木) 01:17:52.39ID:01uupJ2t
mat.at(y,x)とBGRの罠はいい加減どうにかならないのか…
2017/07/20(木) 06:48:41.03ID:m+4agcCu
コンピューターの画面は左上が原点になるよう設計されてるからな
タイムマシン発明して変えてこい
2017/07/20(木) 08:12:57.01ID:tDwsjeaW
BMPはわざわざ左下原点にしてるからややこしいことになる
2017/07/20(木) 08:39:38.64ID:0b9xdtC8
Mat::atと原点位置は関係ないと思うが。低い次元(x)が後の引数なのが違和感あるってことだろ?
Rとかだとxを省略したら行ベクトルを意味するとか合理性はあるんだが、OpenCVのatは
1引数で呼んだ時の動作はなんか適当だね。
2017/07/20(木) 08:52:36.04ID:CxqiqQov
そもそもatとかいらん、ポインタ使え
2017/07/20(木) 12:30:40.91ID:yGV4vGN/
>>672
ゲームギアは画面の真ん中が原点。
2017/07/22(土) 18:01:04.81ID:Zmb5Pcwv
CからCvMat@OpenCV2.4のピクセル値を読み書きしたいのですがどのようにしたらいいですか?
ググってもC++からやっている事例ばかり引っかかってCから操作している例を見つけられませんでした
dataあたりから出来そうな気もするのですが・・・
678デフォルトの名無しさん
垢版 |
2017/07/23(日) 16:50:41.03ID:izG3yijY
その通り
679デフォルトの名無しさん
垢版 |
2017/08/07(月) 11:59:39.60ID:w0+OBzVI
cv:Mat


平行移動サンプルコード
くださいorz
2017/08/07(月) 19:28:00.98ID:S06Ddx/X
並行移動ってもうちょい具体的に
2017/08/07(月) 20:05:51.18ID:FS16tv0T
  cv:Mat

これで移動完了
682679
垢版 |
2017/08/08(火) 08:52:07.91ID:OvVzYAy2
Mat frame = cv::imread

とかやって、

frameの画像を下方向に1ピクセル移動、右方向に2ピクセル移動、
は、コーディングはどうなりますでしょうか。
2017/08/08(火) 11:55:52.86ID:yWPGhfQU
いや、補完の処理をどうすんのかって話
はみ出た部分は消滅させるのか、移動した分だけ画像サイズがでかくなるのか
動いた穴の部分は黒塗りでいいのか
とか
684682
垢版 |
2017/08/08(火) 12:04:02.43ID:OvVzYAy2
同じ大きさが良いです
はみ出た部分は消失です。
動いた部分、黒塗りしたいです。
2017/08/08(火) 13:23:12.83ID:yWPGhfQU
void hoge(Mat src, Mat &dst, int dx, int dy) {
Rect rect(max(0, -dx), max(0, -dy), src.cols-abs(dx), src.rows-abs(dy));
Mat sub = Mat(src, rect).clone();
dst = Mat::zeros(src.rows, src.cols, CV_8UC3);
Mat roi(dst, Rect(max(0, dx), max(0, dy), dst.cols-abs(dx), dst.rows-abs(dy)));
sub.copyTo(roi);
}

dxとdyが移動量、それぞれ画像の右方向、下方向が正ね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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