🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

1回答

604閲覧

cv::Matの計算について

mmmw

総合スコア23

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2019/10/31 06:30

前提・実現したいこと

uv[a]がこのプログラム内で何を表しているのか,どなたか詳しい方お願いします。

該当のソースコード

C++

1//Point(x,y)という意味を持たせる 2struct myclass { 3 bool operator() (cv::Point pt1, cv::Point pt2) { return (pt1.x < pt2.x);} 4} myobject; 5 6 7 8// AX = B を解く. 両辺にAの逆行列を前掛けする 9 matX = matA.inv()*matB; 10 MatConstIterator_<float> iter = matX.begin<float>(); 11 while(iter != matX.end<float>()) printf("%.1f\n", *iter++); 12 13 //切り上げで長方形座標をそれぞれ求める(赤点) 14 15 std::vector<cv::Point> uv(5); 16 while(a < 5){ 17 x = pts[a].x; 18 y = pts[a].y; 19 mother = matX.at<float>(6,0)*x + matX.at<float>(7,0)*y + 1; 20 uv[a] =Point(ceil((matX.at<float>(0,0)*x + matX.at<float>(1,0)*y + matX.at<float>(2,0))/mother),ceil((matX.at<float>(3,0)*x + matX.at<float>(4,0)*y + matX.at<float>(5,0))/mother)); 21 a++; 22 }

補足情報(FW/ツールのバージョンなど)

visual studio2012

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2019/10/31 06:40

同次座標系を用いた何らかの座標変換処理っぽく見えますが,断片すぎて意味不明なので,これを書いた本人に訊いてください.
tiitoi

2019/10/31 07:01

まずそのコードはどこから持ってきたものなのか (どこかのサイトならそのURL) を追記してください。
guest

回答1

0

ベストアンサー

コードの雰囲気からの単なる想像です.

(x,y)を(u,v)に変換する何らかの式を,下記のような同次座標で表していて,

text

1[u] [ a b c ][x] 2[v] = [ d e f ][y] 3[1] [ g h 1 ][1]

前半のAX = Bがどうのこうのいう箇所では,この変換のパラメタベクトルX=[ a,b,c,d,e,f,g,h ]^tを,
既知の何点かの(x,y)←→(u,v)対応データを用いて最小二乗法か何かで求めていて,

最後のuv[a]というのは,求めた変換パラメタで(x,y)座標系側の何らかのデータ点を(u,v)の側に変換した結果でしょう.

投稿2019/10/31 06:51

編集2019/10/31 06:53
fana

総合スコア11985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2019/10/31 07:37

これでBAか… まぁ何かが解決するヒントになったのであれば良いのだけど.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問