
以下のプログラムはOpenCVで画像の上に別な画像を貼り付けるプログラムなのですが、
各関数の役割について詳しく説明して頂けないでしょうか?
#include <opencv2/opencv.hpp>
// 画像を画像に貼り付ける関数
void paste(cv::Mat dst, cv::Mat src, int x, int y, int width, int height) {
cv::Mat resized_img;
cv::resize(src, resized_img, cv::Size(width, height));
if (x >= dst.cols || y >= dst.rows) return;
int w = (x >= 0) ? std::min(dst.cols - x, resized_img.cols) : std::min(std::max(resized_img.cols + x, 0), dst.cols);
int h = (y >= 0) ? std::min(dst.rows - y, resized_img.rows) : std::min(std::max(resized_img.rows + y, 0), dst.rows);
int u = (x >= 0) ? 0 : std::min(-x, resized_img.cols - 1);
int v = (y >= 0) ? 0 : std::min(-y, resized_img.rows - 1);
int px = std::max(x, 0);
int py = std::max(y, 0);
cv::Mat roi_dst = dst(cv::Rect(px, py, w, h));
cv::Mat roi_resized = resized_img(cv::Rect(u, v, w, h));
roi_resized.copyTo(roi_dst);
}
// 画像を画像に貼り付ける関数(サイズ指定を省略したバージョン)
void paste(cv::Mat dst, cv::Mat src, int x, int y) {
paste(dst, src, x, y, src.rows, src.cols);
}
int main() {
cv::Mat img1 = cv::imread("Lenna.jpg"); // 画像の読み込み
cv::Mat img2 = cv::imread("cat.jpg"); // 画像の読み込み
// img1にimg2を貼り付ける。位置 x=105, y=110, サイズ80x80
paste(img1, img2, 105, 110, 80, 80);
cv::namedWindow("result"); // ウィンドウの準備
cv::imshow("result", img1); // 画像の表示
cv::waitKey(); // キー入力待ち
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ライブラリ関数の役割は、そのライブラリのリファレンスマニュアルやドキュメントを参照するものです。
こんな感じに検索すれば、簡単に情報は手に入ります。Q&Aサイトやフォーラムなどの生き字引をあてにするのではなく、確かな情報源から必要な情報を得る努力をすることが第一歩だと思います。https://www.google.co.jp/search?q=opencv+referen …
https://www.google.co.jp/search?q=opencv+documen …
https://www.google.co.jp/search?q=opencv+sample+ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
放射状ブラー C言語で書いたの...
-
CppUnitはCプログラムにも使え...
-
C言語で%を使わない余りの出し方
-
C++で表を作成したいのです ...
-
階乗のプログラム
-
argvのNULLチェック
-
C#で疑似カラー
-
最早開始時間と最遅完了時刻を...
-
C言語 エラーの原因がわからな...
-
信頼区間の1.96や1.65ってどこ...
-
Enterキーを押されたら次の処理...
-
プログラムでの数字につく”f”の...
-
「Aに対するBの割合」と「Aに対...
-
C++のfor文について
-
変数とパラメータとは違うもの...
-
C言語のプログラミングですが、
-
LNK2019:未解決の外部シンボル ...
-
main.c:7:43: warning: implici...
-
For文の終了値を関数にしても問...
-
2÷3などの余りについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で簡単なパックマンゲーム...
-
2の補数を計算するプログラム
-
c言語プログラミングについて f...
-
再起呼び出しの回数をカウント...
-
intとlongは同じ?
-
openCVの画像処理について
-
C言語
-
【C#】SQL文の中に変数を埋め込...
-
C言語プログラミング 漸化式に...
-
カードシャッフルのブログラム...
-
C++ Debug Errorについて教えて
-
デバッグビルドとリリースビル...
-
迷路を脱出する経路探索プログ...
-
C++デバックエラーについて詳し...
-
C++ bmp 透過処理
-
複数の共有メモリの作成
-
C言語で%を使わない余りの出し方
-
C言語
-
2次関数プログラムを描写する...
-
16bitで乱数を生成する方法
おすすめ情報