国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV 圖像重映射函數(shù)remap()實例詳解

這篇具有很好參考價值的文章主要介紹了OpenCV 圖像重映射函數(shù)remap()實例詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?????????OpenCV 圖像重映射函數(shù)remap()對圖像應(yīng)用通用幾何變換。其原型如下:

? ? ? ? void remap(InputArray? src,?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?OutputArray?dst,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?InputArray? map1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?InputArray map2,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int? ?interpolation,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int?borderMode?=?BORDER_CONSTANT,

????????????????????????????????const?Scalar?&?borderValue?=?Scalar()

? ? ? ? ? ?)

???參數(shù):

? ? ? ?src?源圖像。

? ? ? ?dst?輸出目標圖像。它的大小與 map1 相同,類型與 src 相同。

? ? ? ?map1?(x,y) 點或僅 x 值的第一個映射具有 CV_16SC2 、 CV_32FC1 或 CV_32FC2 ????????????????????????????????類型。

? ? ? ? ? ? ? ? ? ? map2??y 值的第二個映射分別具有 CV_16UC1、CV_32FC1 類型或無類型(如果映射 ????????1 是 (x,y) 點,則為空映射)。

? ? ? ? ? ? ? ? ? ? ? interpolation?插值方法,可選:? INTER_NEAREST,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?INTER_LINEAR ,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? INTER_CUBIC,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??INTER_LANCZOS4,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????????????????????????????????????????????????????INTER_NEAREST_EXACT? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? INTER_MAX? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? WARP_FILL_OUTLIERS ,?????????????????????????????????????????????????????????????????????WARP_INVERSE_MAP?

????????????????????????borderMode?像素外推法。當 borderMode=BORDER_TRANSPARENT 時,意味? ? ? ? ? ? ? ? 著目標圖像中與源圖像中的“異常值”相對應(yīng)的像素不會被該函數(shù)修改??蔀椋築ORDER_CONSTANT ,BORDER_REPLICATE,BORDER_REFLECT,BORDER_WRAP ,BORDER_REFLECT_101 ,BORDER_TRANSPARENT ,BORDER_REFLECT101 ,BORDER_DEFAULT,BORDER_ISOLATED

????????????????????????borderValue?在邊界恒定的情況下使用的值。默認值為?0。

????????OpenCV的remap函數(shù)的主要用途是重新映射圖像中像素的位置或值。用它可以實現(xiàn)圖像鏡像、形態(tài)改變、特效制作、圖像分割等。下面以例演示?其用法。先寫一個示例程序,讀入一張圖片然后,用remap函數(shù)分別獲取水平鏡像圖片,示例程序代碼如下:

// RemapTest.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。

#include<opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat src = imread("1.png");
	if (src.empty())
	{
		cout << "Cann't load Image!";
		return -1;
	}
	imshow("原始圖像:",src);
	Mat srcx(src.rows, src.cols, CV_32F); // x 方向
	Mat srcy(src.rows, src.cols, CV_32F); // y 方向

	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = src.cols - j - 1;
			srcy.at<float>(i, j) = i;
			
		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("水平鏡像:", src);

	waitKey(0);
	return 1;
}

試運行,結(jié)果如下:

OpenCV 圖像重映射函數(shù)remap()實例詳解,C++,機器視覺,opencv,人工智能,計算機視覺,OpenCV remap函數(shù),remap函數(shù)實例詳解,圖像重映射函數(shù)實例詳解

? ? ? ?獲取垂直鏡像,其代碼如下:

// RemapTest.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。

#include<opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat src = imread("1.png");
	if (src.empty())
	{
		cout << "Cann't load Image!";
		return -1;
	}
	imshow("原始圖像:",src);
	Mat srcx(src.rows, src.cols, CV_32F); // x 方向
	Mat srcy(src.rows, src.cols, CV_32F); // y 方向

	//水平鏡像
	/*
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = src.cols - j - 1;
			srcy.at<float>(i, j) = i;
			
		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("水平鏡像:", src);
	*/

	//垂直鏡像
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = j;
			srcy.at<float>(i, j) = src.rows -i -1;

		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("垂直鏡像:", src);

	waitKey(0);
	return 1;
}

? ? ? ?試運行結(jié)果如下:

OpenCV 圖像重映射函數(shù)remap()實例詳解,C++,機器視覺,opencv,人工智能,計算機視覺,OpenCV remap函數(shù),remap函數(shù)實例詳解,圖像重映射函數(shù)實例詳解? 再寫一段改變圖形形狀的代碼,代碼如下:

// RemapTest.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。

#include<opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat src = imread("1.png");
	if (src.empty())
	{
		cout << "Cann't load Image!";
		return -1;
	}
	imshow("原始圖像:",src);
	Mat srcx(src.rows, src.cols, CV_32F); // x 方向
	Mat srcy(src.rows, src.cols, CV_32F); // y 方向

	//水平鏡像
	/*
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = src.cols - j - 1;
			srcy.at<float>(i, j) = i;
			
		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("水平鏡像:", src);
	*/

	//垂直鏡像
	/*
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = j;
			srcy.at<float>(i, j) = src.rows -i -1;

		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("垂直鏡像:", src);
	*/

	//改變圖像形狀
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = j;
			srcy.at<float>(i, j) = i + 5.0 * cos(i / 5.0);
		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("改變圖形形狀:", src);



	waitKey(0);
	return 1;
}

? ? ? ?割裂效果呈現(xiàn),實現(xiàn)的程序代碼如下:

// RemapTest.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。

#include<opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat src = imread("1.png");
	if (src.empty())
	{
		cout << "Cann't load Image!";
		return -1;
	}
	imshow("原始圖像:",src);
	Mat srcx(src.rows, src.cols, CV_32F); // x 方向
	Mat srcy(src.rows, src.cols, CV_32F); // y 方向

	//水平鏡像
	/*
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = src.cols - j - 1;
			srcy.at<float>(i, j) = i;
			
		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("水平鏡像:", src);
	*/

	//垂直鏡像
	/*
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = j;
			srcy.at<float>(i, j) = src.rows -i -1;

		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("垂直鏡像:", src);
	*/

	//改變圖像形狀
	/*
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = j;
			srcy.at<float>(i, j) = i + 5.0 * cos(i / 5.0);
		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("改變圖形形狀:", src);
	*/

	//割裂效果呈現(xiàn)
	for (size_t i = 0; i < src.rows; i++)
	{
		for (int j = 0; j < src.cols; j++)
		{
			srcx.at<float>(i, j) = j + 10.0 * tan(j / 5.0);;
			srcy.at<float>(i, j) = i;
		}
	}
	remap(src, src, srcx, srcy, INTER_LINEAR);
	imshow("割裂效果:", src);


	waitKey(0);
	return 1;
}

?試運行,結(jié)果如下:

OpenCV 圖像重映射函數(shù)remap()實例詳解,C++,機器視覺,opencv,人工智能,計算機視覺,OpenCV remap函數(shù),remap函數(shù)實例詳解,圖像重映射函數(shù)實例詳解文章來源地址http://www.zghlxwxcb.cn/news/detail-856545.html

到了這里,關(guān)于OpenCV 圖像重映射函數(shù)remap()實例詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 計算機畢設(shè) python opencv 機器視覺圖像拼接算法

    計算機畢設(shè) python opencv 機器視覺圖像拼接算法

    ?? 這兩年開始畢業(yè)設(shè)計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項目系統(tǒng)達不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計項目,今天

    2024年02月07日
    瀏覽(27)
  • 04- 圖像卷積及圖片的模糊和邊緣檢測 (OpenCV系列) (機器視覺)

    04- 圖像卷積及圖片的模糊和邊緣檢測 (OpenCV系列) (機器視覺)

    知識重點 padding指的就是填充的0的圈數(shù) 重構(gòu)圖片大小:? img = cv2.resize(img, dsize=(300, 300)) 模糊操作 :? dst = cv2.filter2D (img, -1, kernel) 模糊操作 : 方盒濾波 :? dst = cv2.boxFilter (img, -1, (5, 5), normalize = True)?? # normalize = True時, a = 1 / (W * H) 濾波器的寬高, 且此時方盒濾波等價于均值濾波

    2024年02月02日
    瀏覽(25)
  • 計算機競賽 深度學(xué)習(xí) opencv python 公式識別(圖像識別 機器視覺)

    計算機競賽 深度學(xué)習(xí) opencv python 公式識別(圖像識別 機器視覺)

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? 基于深度學(xué)習(xí)的數(shù)學(xué)公式識別算法實現(xiàn) 該項目較為新穎,適合作為競賽課題方向,學(xué)長非常推薦! ??學(xué)長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:4分 創(chuàng)新點:4分 ?? 更多資料, 項目分享: https://gitee.com/d

    2024年02月07日
    瀏覽(20)
  • 2.ROS機器視覺——ROS圖像(imgmsg)與opencv(cv2)對接

    2.ROS機器視覺——ROS圖像(imgmsg)與opencv(cv2)對接

    參考: 古月學(xué)院和ROS機器人開發(fā)實踐 目標 :實現(xiàn)ROS系統(tǒng)讀取攝像頭的圖像,ROS讀取的圖像數(shù)據(jù)轉(zhuǎn)化為opencv中的圖像,opencv對接受的圖像進行處理,最后返回給ROS系統(tǒng)可視化輸出。 安裝opencv庫與相關(guān)的接口包 由于我用的ROS-Melodic版本,其中roscore只能在python2中執(zhí)行,而視覺部

    2024年02月16日
    瀏覽(15)
  • 全流程機器視覺工程開發(fā)(三)任務(wù)前瞻 - 從opencv的安裝編譯說起,到圖像增強和分割

    全流程機器視覺工程開發(fā)(三)任務(wù)前瞻 - 從opencv的安裝編譯說起,到圖像增強和分割

    最近開始做這個裂縫識別的任務(wù)了,大大小小的問題我已經(jīng)摸得差不多了,然后關(guān)于識別任務(wù)和分割任務(wù)我現(xiàn)在也弄的差不多了。 現(xiàn)在開始做正式的業(yè)務(wù),也就是我們說的裂縫識別的任務(wù)。作為前言,先來說說場景: 現(xiàn)在相機返回過來的照片: 都是jpeg格式的照片,當然也可

    2024年02月19日
    瀏覽(18)
  • 基于Python+OpenCV的圖像搜索引擎(CBIR+深度學(xué)習(xí)+機器視覺)含全部工程源碼及圖片數(shù)據(jù)庫下載資源

    基于Python+OpenCV的圖像搜索引擎(CBIR+深度學(xué)習(xí)+機器視覺)含全部工程源碼及圖片數(shù)據(jù)庫下載資源

    本項目旨在開發(fā)一套完整高效的圖像搜索引擎,為用戶提供更加便捷的圖片搜索體驗。為了實現(xiàn)這一目標,我們采用了 CBIR(Content-based image retrieval)技術(shù),這是目前主流的圖像搜索方法之一。CBIR 技術(shù)基于圖像內(nèi)容的相似性來檢索相似的圖像,相比于傳統(tǒng)的圖像搜索方法,

    2024年02月08日
    瀏覽(26)
  • 基于計算機視覺,深度學(xué)習(xí)、機器學(xué)習(xí),OpenCV,圖像分割,目標檢測卷積神經(jīng)網(wǎng)絡(luò)計算機畢業(yè)設(shè)計選題題目大全選題指導(dǎo)

    隨著深度學(xué)習(xí)、機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)技術(shù)的快速發(fā)展,計算機視覺領(lǐng)域的應(yīng)用變得越來越廣泛和有趣。本畢業(yè)設(shè)計旨在探索這一領(lǐng)域的前沿技術(shù),將深度學(xué)習(xí)模型、神經(jīng)網(wǎng)絡(luò)架構(gòu)、OpenCV圖像處理工具,以及卷積神經(jīng)網(wǎng)絡(luò)(CNN)的強大能力結(jié)合起來,以解決實際圖像處理問題。

    2024年02月08日
    瀏覽(100)
  • C/C++開發(fā),opencv讀寫圖像函數(shù)詳解

    C/C++開發(fā),opencv讀寫圖像函數(shù)詳解

    目錄 一、cv::imread函數(shù)讀取圖像 ??????? 1.1 imread函數(shù) ????????1.2 imread函數(shù)的參數(shù)解析 ??????? 1.3? imread函數(shù)實踐案例 ??????? 1.4 編譯及測試 ?二、cv::imwrite函數(shù)存儲圖像 ??????? 2.1 cv::imwrite函數(shù) ??????? 2.2 imwrite函數(shù)參數(shù)解析 ??????? 2.3 imwrite函數(shù)實踐案

    2024年02月15日
    瀏覽(19)
  • ROS高效進階第四章 -- 機器視覺處理之圖像格式,usb_cam,攝像頭標定,opencv和cv_bridge引入

    ROS高效進階第四章 -- 機器視覺處理之圖像格式,usb_cam,攝像頭標定,opencv和cv_bridge引入

    從本文開始,我們用四篇文章學(xué)習(xí)ROS機器視覺處理,本文先學(xué)習(xí)一些外圍的知識,為后面的人臉識別,目標跟蹤和yolov5目標檢測做準備。 我的筆記本是Thinkpad T14 i7 + Nvidia MX450,系統(tǒng)是ubuntu20.04,ros是noetic。由于很多驅(qū)動與硬件強相關(guān),請讀者注意這點。 本文的參考資料有:

    2024年02月04日
    瀏覽(26)
  • 【Python/Opencv】圖像權(quán)重加法函數(shù):cv2.addWeighted()詳解

    【Python/Opencv】圖像權(quán)重加法函數(shù):cv2.addWeighted()詳解

    在OpenCV圖像加法cv2.add函數(shù)詳解詳細介紹了圖像的加法運算。 除了這種加法外,OpenCV還提供了帶權(quán)重的加法,即兩副圖像的像素通道值相加時各自按一定的權(quán)重比例取值來相加。 假設(shè)有2個圖像矩陣src1和src2,在兩個圖像融合時,各自的權(quán)重分別為alpha和beta,則二者融合后的目

    2024年02月15日
    瀏覽(164)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包