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

【OpenCV findChessboardCornersSB 算法原理與函數(shù)使用】

這篇具有很好參考價(jià)值的文章主要介紹了【OpenCV findChessboardCornersSB 算法原理與函數(shù)使用】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

簡(jiǎn)介

findChessboardCornersSB是OpenCV4新引入的棋盤格角點(diǎn)檢測(cè)函數(shù),可以直接獲得亞像素角點(diǎn)坐標(biāo),對(duì)噪聲的魯棒性和對(duì)大尺寸圖像的檢測(cè)速度相比之前的findChessboardCorners有很大提升。本文介紹findChessboardCornersSB函數(shù)的算法原理,并給出函數(shù)使用示例。

算法原理

findChessboardCornersSB的實(shí)現(xiàn)主要參考論文Accurate Detection and Localization of Checkerboard Corners for Calibration(2018)。
accurate detection and localization of checkerboard corners for calibration,opencv,算法,計(jì)算機(jī)視覺
如上圖所示,棋盤格角點(diǎn)檢測(cè)算法的模型可以分為兩類,一種是中心線模型,一種是邊緣交叉模型。邊緣交叉模型的缺點(diǎn)是易受噪聲影響,論文中提出的是一種基于中心線模型的檢測(cè)算法。

檢測(cè)算法基于Radon變換的思想,對(duì)于任意一個(gè)像素,可以選擇以其為中心的圓形區(qū)域,對(duì)像素灰度沿不同角度進(jìn)行積分。可以畫出積分結(jié)果隨角度的變化曲線,當(dāng)這一像素是角點(diǎn)時(shí),如下圖所示,曲線接近三角函數(shù)曲線,且曲線有較大的變化幅度??梢愿鶕?jù)這一特性判斷像素是否為角點(diǎn)。
accurate detection and localization of checkerboard corners for calibration,opencv,算法,計(jì)算機(jī)視覺
使用Radon變換的問題是不同角度的積分計(jì)算較為耗時(shí)。為了加速這一過程,論文中只計(jì)算0、45、90、135這四個(gè)方向。0、90度的積分結(jié)果分別由對(duì)圖像進(jìn)行橫豎兩個(gè)方向的Box濾波獲得,為得到45、135度的積分結(jié)果,先將圖像旋轉(zhuǎn)45°,對(duì)旋轉(zhuǎn)的圖像進(jìn)行橫豎兩個(gè)方向的Box濾波,最后再反向旋轉(zhuǎn)圖像。取四個(gè)濾波結(jié)果中最大值與最小值差值的平方作為角點(diǎn)響應(yīng)值。對(duì)響應(yīng)圖進(jìn)行濾波,找到局部極大值,并進(jìn)行亞像素插值獲得亞像素角點(diǎn)坐標(biāo),最后再使用閾值和非最大值抑制來濾除響應(yīng)弱的角點(diǎn)。原文算法流程如下圖。
accurate detection and localization of checkerboard corners for calibration,opencv,算法,計(jì)算機(jī)視覺
下圖是論文中展示的對(duì)實(shí)際圖片進(jìn)行角點(diǎn)檢測(cè)的效果
accurate detection and localization of checkerboard corners for calibration,opencv,算法,計(jì)算機(jī)視覺
論文使用仿真數(shù)據(jù)和實(shí)際數(shù)據(jù)對(duì)提出的算法和OpenCV原始的角點(diǎn)檢測(cè)算法效果進(jìn)行了對(duì)比。仿真數(shù)據(jù)中,提出的算法在不同角點(diǎn)角度、低運(yùn)動(dòng)模糊、不同噪聲水平、不同透視角度下都優(yōu)于OpenCV原始方法。實(shí)際數(shù)據(jù)中,提出的算法檢測(cè)成功率更高,同時(shí)重投影誤差也更小。文章來源地址http://www.zghlxwxcb.cn/news/detail-836994.html

函數(shù)使用

#include<opencv2/opencv.hpp>

int main()
{
	std::string pattern = "./data/*.png";
	std::vector<std::string> files;
	cv::glob(pattern, files);
	int width = 11;
	int height = 8;
	cv::Size patternSize(width, height);

	// flag參數(shù)
	// cv::CALIB_CB_NORMALIZE_IMAGE 調(diào)用cv::equalizeHist對(duì)圖片進(jìn)行直方圖均衡化
	// cv::CALIB_CB_EXHAUSTIVE 保留更多的角點(diǎn)用于棋盤格篩選,同時(shí)嘗試更多次數(shù)的棋盤格篩選
	// cv::CALIB_CB_ACCURACY 對(duì)圖像進(jìn)行x2放大,提高角點(diǎn)檢查準(zhǔn)確度
	// cv::CALIB_CB_LARGER 是否允許檢測(cè)出的標(biāo)定板角點(diǎn)數(shù)量大于標(biāo)定板patternSize
	// cv::CALIB_CB_MARKER 標(biāo)定板是否有標(biāo)記點(diǎn)
	int flag = cv::CALIB_CB_EXHAUSTIVE | cv::CALIB_CB_ACCURACY;

	std::string windowsName = "Chessboard Corners";

	for (auto f : files)
	{
		cv::Mat image = cv::imread(f, cv::IMREAD_UNCHANGED);
		std::vector<cv::Point2f> corners;
		// 檢測(cè)棋盤格
		bool found = cv::findChessboardCornersSB(image, patternSize, corners, flag);
		if (found)
		{
			// 繪制顯示結(jié)果
			cv::drawChessboardCorners(image, patternSize, corners, found);
			cv::namedWindow(windowsName);
			cv::imshow(windowsName, image);
			cv::waitKey(0);
			cv::destroyWindow(windowsName);
		}
	}
	return 0;
}

到了這里,關(guān)于【OpenCV findChessboardCornersSB 算法原理與函數(shù)使用】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • OpenCV書簽 #差值哈希算法的原理與相似圖片搜索實(shí)驗(yàn)

    OpenCV書簽 #差值哈希算法的原理與相似圖片搜索實(shí)驗(yàn)

    差值哈希算法(Difference Hash Algorithm,簡(jiǎn)稱dHash) 是哈希算法的一種,主要可以用來做以圖搜索/相似圖片的搜索工作。 ? 差值哈希算法通過計(jì)算相鄰像素的差異來生成哈希,即通過縮小圖像的每個(gè)像素與平均灰度值的比較,生成一組哈希值。最后,利用兩組圖像的哈希值的漢

    2024年01月23日
    瀏覽(20)
  • OpenCV書簽 #直方圖算法的原理與相似圖片搜索實(shí)驗(yàn)

    OpenCV書簽 #直方圖算法的原理與相似圖片搜索實(shí)驗(yàn)

    直方圖算法(Image Histogram Algorithm) 通過統(tǒng)計(jì)圖像中各個(gè)顏色值的分布情況來提供關(guān)于圖像顏色特征的信息,它可以用來衡量?jī)蓮垐D片在顏色分布上的相似度,進(jìn)而可以用來進(jìn)行圖像相似度的比較,因此,直方圖算法是一種常用的圖片相似度算法,通常是一個(gè)一維的數(shù)組(取

    2024年01月23日
    瀏覽(21)
  • OpenCV #以圖搜圖:均值哈希算法(Average Hash Algorithm)原理與實(shí)驗(yàn)

    OpenCV #以圖搜圖:均值哈希算法(Average Hash Algorithm)原理與實(shí)驗(yàn)

    均值哈希算法(Average Hash Algorithm,簡(jiǎn)稱aHash) 是哈希算法的一種,主要用來做相似圖片的搜索工作。 ? 均值哈希算法(aHash)首先將原圖像縮小成一個(gè)固定大小的像素圖像,然后將圖像轉(zhuǎn)換為灰度圖像,通過縮小圖像的每個(gè)像素與平均灰度值的比較,生成一組哈希值。最后,

    2024年02月08日
    瀏覽(27)
  • OpenCV #以圖搜圖:感知哈希算法(Perceptual hash algorithm)的原理與實(shí)驗(yàn)

    OpenCV #以圖搜圖:感知哈希算法(Perceptual hash algorithm)的原理與實(shí)驗(yàn)

    感知哈希算法(Perceptual Hash Algorithm,簡(jiǎn)稱pHash) 是哈希算法的一種,主要可以用來做以圖搜索/相似圖片搜索工作。 ? 感知哈希算法(pHash)首先將原圖像縮小成一個(gè)固定大小的像素圖像,然后將圖像轉(zhuǎn)換為灰度圖像,通過使用離散余弦變換(DCT)來獲取頻域信息。然后,根

    2024年02月05日
    瀏覽(23)
  • OpenCV書簽 #結(jié)構(gòu)相似性SSIM算法的原理與圖片相似性實(shí)驗(yàn)

    OpenCV書簽 #結(jié)構(gòu)相似性SSIM算法的原理與圖片相似性實(shí)驗(yàn)

    結(jié)構(gòu)相似性(Structural Similarity,簡(jiǎn)稱SSIM算法) ,主要用于檢測(cè)兩張相同尺寸的圖像的相似度、或者檢測(cè)圖像的失真程度,是一種衡量?jī)煞鶊D像相似度的指標(biāo)。 給定兩個(gè)圖像 x 和 y,兩張圖像的結(jié)構(gòu)相似性可按照以下方式求出: 結(jié)構(gòu)相似性的范圍為 -1 到 1。當(dāng)兩張圖像一模一

    2024年01月24日
    瀏覽(23)
  • OpenCV inRange 函數(shù)使用詳解

    OpenCV inRange 函數(shù)使用詳解

    ??????? 本文是 OpenCV圖像視覺入門之路的第6篇文章,本人詳細(xì)的解決了RGB轉(zhuǎn)HSV,HSV通過AI來進(jìn)行HSV轉(zhuǎn) inRange() 函數(shù)的范圍值操作,簡(jiǎn)單全面的解決了OpenCV對(duì)于圖像中某個(gè)顏色的分析工作,本文通過識(shí)別紅色區(qū)域和藍(lán)色區(qū)域來編寫示例程序和博客,也講述了各種操作,例如:

    2024年02月03日
    瀏覽(19)
  • Opencv中inRange函數(shù)使用介紹

    inRange是OpenCV中的圖像閾值函數(shù),用于將圖像中的像素值限制在指定的范圍內(nèi)。它的輸入和輸出如下所述: 輸入值: src:輸入圖像,可以是灰度圖像或彩色圖像。 lowerb:表示下界的閾值,可以是一個(gè)標(biāo)量值或與輸入圖像通道數(shù)相同的數(shù)組。對(duì)于灰度圖像,lowerb是一個(gè)標(biāo)量值。

    2024年02月05日
    瀏覽(19)
  • OpenCV使用ellipse()函數(shù)來繪制一個(gè)橢圓
  • [C++] opencv - resize函數(shù)介紹和使用案例

    C++ OpenCV中的resize函數(shù)用于調(diào)整圖像的大小。它可以根據(jù)指定的尺寸和插值方法對(duì)圖像進(jìn)行縮放。函數(shù)原型如下: 參數(shù)說明: src :輸入圖像,通常為 cv::Mat 類型。 dst :輸出圖像,與輸入圖像具有相同的類型。 size :目標(biāo)圖像的尺寸,表示為 (width, height) 。 fx :沿水平軸的縮放因子

    2024年04月11日
    瀏覽(26)
  • [C++] opencv - imwrite函數(shù)介紹和使用場(chǎng)景

    OpenCV 是一個(gè)開源的計(jì)算機(jī)視覺庫(kù),它包含了許多用于圖像處理和計(jì)算機(jī)視覺任務(wù)的函數(shù)。其中,imsave() 函數(shù)是 OpenCV 中的一個(gè)非常有用的函數(shù),它可以讓程序?qū)⑻幚砗蟮膱D像數(shù)據(jù)保存到指定的文件中。 使用 imwrite() 函數(shù)可以將處理后的圖像數(shù)據(jù)保存到本地文件系統(tǒng)中。例如,

    2024年02月04日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包