以下のプログラムは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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- PHP PHP echo バックスラッシュの使い方 img要素 2 2023/01/08 22:46
- 声優 此のキャラクターCV誰担当していたか? 画像のアニメキャラクターのCVを務めた声優はルパン三世の次元 1 2022/04/03 11:11
- Perl 画像が表示でnull; this.src 1 2022/04/19 11:31
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
intとlongは同じ?
-
OpenCVによる4値化について
-
C言語で%を使わない余りの出し方
-
2の補数を計算するプログラム
-
whileとifを使い偶数を出すには
-
ModifyWorldTransformの引数XFO...
-
強連結判定を行うプログラムに...
-
3のつく数と3の倍数を表示 C言語
-
画像の拡大・縮小
-
C言語で簡単なパックマンゲーム...
-
再起呼び出しの回数をカウント...
-
opencvとmbedのシリアル通信で...
-
nCrの計算
-
main関数について
-
クリックされた地点が2点の線分...
-
C言語 5) 正の整数 n を入力(...
-
四則演算プログラム
-
C++ Debug Errorについて教えて
-
乱数で交互に偶数、奇数が、、、。
-
C++で表を作成したいのです ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2の補数を計算するプログラム
-
intとlongは同じ?
-
再起呼び出しの回数をカウント...
-
C言語で%を使わない余りの出し方
-
迷路を脱出する経路探索プログ...
-
画像の拡大・縮小
-
分数の足し算をさせるプログラ...
-
C言語で簡単なパックマンゲーム...
-
C++で表を作成したいのです ...
-
条件が多い場合
-
複数の共有メモリの作成
-
ヒストグラム均等化処理プログラム
-
3のつく数と3の倍数を表示 C言語
-
argvのNULLチェック
-
乱数で交互に偶数、奇数が、、、。
-
プログラミングに関して
-
OpenCVによる4値化について
-
whileとifを使い偶数を出すには
-
16bitで乱数を生成する方法
-
再帰処理をループ処理に変換
おすすめ情報