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

圖像尺寸、仿射、透視變換

這篇具有很好參考價(jià)值的文章主要介紹了圖像尺寸、仿射、透視變換。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、尺寸變換

1.1 圖像差值原理

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?文章來源地址http://www.zghlxwxcb.cn/news/detail-524483.html

1.2 圖像縮放、翻轉(zhuǎn)、拼接

1.2.1 圖像縮放

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?1.2.2 圖像翻轉(zhuǎn)

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

1.2.3 圖像拼接

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

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

using namespace std;
using namespace cv;

int main()
{
	Mat gray = imread(" lena.png",IMREAD_GRAYSCALE);
	Mat sma1lImg,bigImg0,biglmg1,bigImg2;
	resize(gray, sma1lImg,Size(15, 15), 0, 0, INTER_AREA);//先將圖像縮小resize(smalllmg,bigImg0,Size(30,30),0,0,INTER_NEAREST);//最近鄰差值resize(smallImg,bigImgl,Size(30,30),0,0,INTER_LINEAR);//雙線性差值resize(smalllmg,bigImg2,Size(30,30),0,0,INTER_CUBIC);//雙三次差值
	Mat img_x,img_y,img_xy;
	flip(gray,img_x,0);// 沿x軸對稱
	flip(gray,img_y,1);//沿y軸對稱
	flip(gray,img_xy, -1); //先x軸對稱,再y軸對稱
	Mat img00 = imread("lena00.png");
	Mat img01 = imread("lena01.png"); 
	Mat img10 = imread("lena10.png") ;
	Mat imgl1 = imread("lenal1.png" );

	//圖像連接
	Mat img,img0,imgl;//圖像橫向連接
	hconcat(img00,img01,img0);
	hconcat(img10, imgl1, imgl);//橫向連接結(jié)果再進(jìn)行豎向連接
	vconcat(img0, imgl, img);

	waitKey(0);
	system("pause");
	return 0;
}

2、仿射變換

2.1 仿射變換原理

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?2.2 仿射變換函數(shù)

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?2.3 邊界填充方法和對應(yīng)標(biāo)志

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?2.4 圖像旋轉(zhuǎn)

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?2.5 計(jì)算仿射變換矩陣

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?

//仿射變換
int affineConversion(void)
{
	Mat img = imread("F:/testMap/lena.png");
	if (img.empty())
	{
		cout << "請確認(rèn)圖像文件名稱是否正確" << endl;
		return -1;
	}
	
	Mat rotation0, img_warp0;
	double angle = 45;//設(shè)置圖像旋轉(zhuǎn)的角度
	Size dst_size(img.rows, img.cols);//設(shè)置輸出圖像的尺寸
	Point2f center(img.rows/2.0,img.cols/2.0);//設(shè)置圖像的旋轉(zhuǎn)中心

	rotation0 = getRotationMatrix2D(center,angle,1);//計(jì)算仿射變換矩陣
	
	warpAffine(img,img_warp0,rotation0,dst_size);//進(jìn)行仿射變換
	imshow("img_warp0", img_warp0);

	//根據(jù)定義的三個(gè)點(diǎn)進(jìn)行仿射變換
	Point2f src_points[3];
	Point2f dst_points[3];
	src_points[0] = Point2f(0,0);//原始圖像中的三個(gè)點(diǎn)
	src_points[1] = Point2f(0,(float)(img.cols - 1));
	src_points[2] = Point2f((float)(img.rows - 1),(float)(img.cols - 1));
	dst_points[0] = Point2f((float)(img.rows)*0.11,(float)(img.cols)*0.20);//放射變換后圖像中的三個(gè)點(diǎn)
	dst_points[1] = Point2f((float)(img.rows)*0.15,(float)(img.cols)*0.70);
	dst_points[2] = Point2f((float)(img.rows)*0.81,(float)(img.cols)*0.85);
	
	Mat rotation1,img_warpl;
	rotation1 = getAffineTransform(src_points, dst_points);//根據(jù)對應(yīng)點(diǎn)求取仿射變換矩陣
	warpAffine(img,img_warpl,rotation1,dst_size);//進(jìn)行仿射變換
	imshow("img_warpl", img_warpl);
	waitKey(0);
}

3、透視變換

3.1 原理

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?3.2 計(jì)算透視變化矩陣函數(shù)

?4個(gè)像素坐標(biāo),圖有誤

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

3.3 計(jì)算方法標(biāo)志

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?3.4 透視變換函數(shù)

圖像尺寸、仿射、透視變換,OpenCV學(xué)習(xí)筆記,opencv,計(jì)算機(jī)視覺,人工智能

?

//透視變換
int perspectiveConversion(void)
{
	Mat img = imread("F:/testMap/二維碼.png");
	if (img.empty())
	{
		cout << "請確認(rèn)圖像文件名稱是否正確" << endl;
		return -1;
	}

	Point2f src_points[4]; 
	Point2f dst_points[4];
	
	//通過Image Watch查看的二維碼四個(gè)角點(diǎn)坐標(biāo)
	src_points[0] = Point2f(100.0,401.0);
	src_points[1] = Point2f(551.0,403.0);
	src_points[2] = Point2f(1.0,676.0);
	src_points[3] = Point2f(684.0,678.0);
	
	//期望透視變換后二維碼四個(gè)角點(diǎn)的坐標(biāo)
	dst_points[0] = Point2f(0.0,0.0);
	dst_points[1] = Point2f(627.0,0.0);
	dst_points[2] = Point2f(0.0, 627.0);
	dst_points[3] = Point2f(627.0,627.0);
	
	Mat rotation,img_warp;
	rotation = getPerspectiveTransform(src_points,dst_points);//計(jì)算透視變換矩陣
	warpPerspective(img,img_warp,rotation,img.size());//透視變換投影
	imshow("img",img);
	imshow("img_warp",img_warp);
	
	waitKey(0);
}

到了這里,關(guān)于圖像尺寸、仿射、透視變換的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Python圖像處理篇】opencv中的仿射變換和透視變換

    【Python圖像處理篇】opencv中的仿射變換和透視變換

    仿射變換可以將矩形圖片映射為平行四邊形, 透視變換可以將矩形圖片映射為任意四邊形。 opencv提供了兩個(gè)變換函數(shù),cv2.warpAffine和cv2.warpPerspective, 使用這兩個(gè)函數(shù)可以實(shí)現(xiàn)所有類型的變換。 cv2.warpAffine 接收的參數(shù)2x3的變換矩陣; 而 cv2.warpPerspective 接收的3x3的變換矩陣。

    2024年01月24日
    瀏覽(96)
  • 我在Vscode學(xué)OpenCV 幾何變換(縮放、翻轉(zhuǎn)、仿射變換、透視、重映射)

    我在Vscode學(xué)OpenCV 幾何變換(縮放、翻轉(zhuǎn)、仿射變換、透視、重映射)

    幾何變換指的是將一幅圖像映射到另一幅圖像內(nèi)的操作。 cv2.warpAffine :使用仿射變換矩陣對圖像進(jìn)行變換,可以實(shí)現(xiàn)平移、縮放和旋轉(zhuǎn)等操作。 cv2.warpPerspective :使用透視變換矩陣對圖像進(jìn)行透視變換,可以實(shí)現(xiàn)鏡頭校正、圖像糾偏等操作。 cv2.getAffineTransform :計(jì)算仿射變換

    2024年02月05日
    瀏覽(33)
  • 【OpenCV ? c++】圖像幾何變換 | 圖像仿射變換

    【OpenCV ? c++】圖像幾何變換 | 圖像仿射變換

    ?? 個(gè)人簡介:CSDN「 博客新星 」TOP 10 , C/C++ 領(lǐng)域新星創(chuàng)作者 ?? 作 ?? 者: 錫蘭_CC ?? ?? 專 ?? 欄: 【OpenCV ? c++】計(jì)算機(jī)視覺 ?? 若有幫助,還請 關(guān)注?點(diǎn)贊?收藏 ,不行的話我再努努力??????

    2024年02月16日
    瀏覽(92)
  • 初學(xué)opencv c++學(xué)習(xí)筆記(五)透視變換--warpPerspective()

    初學(xué)opencv c++學(xué)習(xí)筆記(五)透視變換--warpPerspective()

    這篇博客將用簡單的口吻談一談透視變換是啥以及如何操作~ ? ?但是這篇博客,只要你看了,我相信會(huì)有收獲~~~~~~~ ~~~~~~~~~?? ~~~~~~~~~ 目錄 一、透視變換介紹 1.基礎(chǔ)介紹: 二、透視變換apl介紹----?warpPerspective() 1.官方定義 2.參數(shù)解釋 三、搭配apl介紹----?getPerspectiveTransform()

    2024年01月21日
    瀏覽(22)
  • OpenCV(十一):圖像仿射變換

    OpenCV(十一):圖像仿射變換

    目錄 1.圖像仿射變換介紹 ?仿射變換: 仿射變換矩陣: 仿射變換公式: 2.仿射變換函數(shù) 仿射變換函數(shù):warpAffine() 圖像旋轉(zhuǎn):getRotationMatrix2D() 計(jì)算仿射變換矩陣:getAffineTransform()? 3.demo 1.圖像仿射變換介紹 ?仿射變換: ? ? ? ?仿射變換是由平移、縮放、旋轉(zhuǎn)、翻轉(zhuǎn)和錯(cuò)切組

    2024年02月10日
    瀏覽(90)
  • 【OpenCV】圖像變換(縮放、平移、旋轉(zhuǎn)、仿射)

    圖像變換是指通過對圖像進(jìn)行縮放、平移、旋轉(zhuǎn)、仿射、透視等變換來改變圖像的形狀和大小。在本篇博客中,我們將詳細(xì)介紹OpenCV中的圖像變換函數(shù),并提供示例代碼以幫助讀者更好地理解這些函數(shù)的使用方法。 縮放變換是指通過改變圖像的大小來改變圖像的形狀。在Op

    2024年02月07日
    瀏覽(94)
  • OpenCV圖像的仿射變換、旋轉(zhuǎn)和縮放

    OpenCV圖像的仿射變換、旋轉(zhuǎn)和縮放

    以下是對代碼的逐行解釋:

    2024年02月13日
    瀏覽(86)
  • 【opencv】:圖像的透視變換

    【opencv】:圖像的透視變換

    仿射變換(Affine Transformation或 Affine Map) , 又稱為仿射映射, 是指在幾何中, 圖像進(jìn)行從一個(gè)向量空間進(jìn)行一次線性變換和一次平移, 變換為到另一個(gè)向量空間的過程。我們常說的仿射變換是透視變換的一個(gè)特例。 以上便是透視變換的原理圖,即將源圖像通過投影映射,

    2024年02月15日
    瀏覽(21)
  • opencv圖像仿射變換,cv2.warpAffine

    opencv圖像仿射變換,cv2.warpAffine

    目錄 仿射變換原理介紹 cv2.warpAffine函數(shù)介紹 代碼實(shí)例? ? ? ? ? 仿射變換 ,又稱 仿射映射 ,是指在幾何中,一個(gè)向量空間進(jìn)行一次線性變換并接上一個(gè)平移,變換為另一個(gè)向量空間。 ????????在有限維的情況,每個(gè)仿射變換可以由一個(gè)矩陣A和一個(gè)向量b給出,它可以寫

    2024年02月05日
    瀏覽(96)
  • OpenCV利用透視變換矯正圖像

    OpenCV利用透視變換矯正圖像

    案例:使用OpenCV將一張折射的圖片給矯正過來 實(shí)現(xiàn)步驟: 1.載入圖像 2.圖像灰度化 3.二值分割 4.形態(tài)學(xué)操作去除噪點(diǎn) 5.輪廓發(fā)現(xiàn) 6.使用霍夫直線檢測,檢測上下左右四條直線(有可能是多條,但是無所謂) 7.繪制出直線 8.尋找與定位上下左右是條直線 9.擬合四條直線方程 1

    2024年02月06日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包