魚眼レンズ風の処理

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mabc
記事: 1
登録日時: 11年前

魚眼レンズ風の処理

#1

投稿記事 by mabc » 11年前

OpenCVについての質問です。

入力画像を魚眼レンズのように処理するプログラミングが本に載っていたのですが、
この関数では、どういった処理をしているのかよくわからないです。
なので、わかる方がいましたら説明をお願いしたいです。

コード:

void
toycamera_fisheye(cv::Mat img_src, cv::Mat img_dst, int weight)
{
	int vx, vy;
	double hcols = img_src.cols / 2.0, hrows = img_src.rows / 2.0;
	double max = sqrt(pow(hcols, 2) + pow(hrows, 2));

	for (int y = 0; y<img_src.rows; y++){
		for (int x = 0; x<img_src.cols; x++){
			double r = sqrt(pow((x - hcols), 2) + pow((y - hrows), 2)) / max;
			double rg = pow(r, (double)weight / 100.0);

			vx = (int)((x - hcols) * rg / r + hcols + 0.5);
			vy = (int)((y - hrows) * rg / r + hrows + 0.5);

			if (0 <= vx && vx < img_src.cols && 0 <= vy && vy < img_src.rows){
				for (int i = 0; i <= 2; i++)
					img_dst.at<uchar>(y, 3 * x + i) = img_src.at<uchar>(vy, 3 * vx + i);
			}
		}
	}
}

アバター
usao
記事: 1892
登録日時: 12年前
連絡を取る:

Re: 魚眼レンズ風の処理

#2

投稿記事 by usao » 11年前

てきとーに像高を改ざんしているだけなのではないでしょうか

閉鎖

“C言語何でも質問掲示板” へ戻る