最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+OpenCV實現(xiàn)相機標(biāo)定的方法詳解

 更新時間:2023年05月17日 11:32:18   作者:微小冷  
opencv中內(nèi)置了張正友的棋盤格標(biāo)定法,通過一些姿態(tài)各異的棋盤格圖像,可以標(biāo)定相機的內(nèi)外參數(shù),本文為大家介紹OpenCV進行相機標(biāo)定的具體方法,希望對大家有所幫助

opencv中內(nèi)置了張正友的棋盤格標(biāo)定法,通過一些姿態(tài)各異的棋盤格圖像,就能標(biāo)定相機的內(nèi)外參數(shù)。

角點檢測

第一步是角點檢測,首先需要讀取棋盤格圖像

import numpy as np
import cv2
import os

path = 'imgs'   # 圖像文件夾;相對路徑
fs = os.listdir(path)
grays = []
for f in fs:
    fName = os.path.join(path, f)
    img = cv2.imread(fName)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 圖像轉(zhuǎn)灰度
    grays.append(gray)

其中,grays中便是所有棋盤格灰度圖像,接下來,就要找到這些棋盤格的角點位置,主要用到函數(shù)findChessboardCorners,其輸入?yún)?shù)為棋盤格圖像、角點個數(shù)以及標(biāo)志位。

w, h = 11, 8        # 交點橫縱個數(shù)

# 亞像素點的檢測條件
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
pImgs = []
for g in grays: 
   # cs即位初步檢測的角點
   ret, cs = cv2.findChessboardCorners(g, (w, h), None) 
   # 亞像素角點檢測
   pImg = cv2.cornerSubPix(g, cs.astype(np.float32), (5, 5), (-1,   -1), criteria)
   pImgs.append(np.squeeze(pImg))

其中,pImg用于存放像素坐標(biāo)中的二維點。

查看角點

為了驗證角點檢測是否合理,可以將其畫出來,用opencv自帶的工具就像下面這樣就可以,

cv2.drawChessboardCorners(grays[0], (w, h), pImgs[0], None)
cv2.imshow('findCorners', grays[0])
cv2.waitKey(1000)

但窗口縮放比較麻煩,所以更推薦用經(jīng)典的matplotlib來畫圖

import matplotlib.pyplot as plt
pts = pImgs[0].squeeze().reshape(-1,2).T
plt.imshow(grays[0])
plt.scatter(pts[0], pts[1], marker='*', c='red')
plt.show()

效果如下

標(biāo)定

函數(shù)calibrateCamera可用于圖像標(biāo)定,只需將現(xiàn)實世界的點和相機坐標(biāo)系中的角點的一一對應(yīng)關(guān)系輸入,便能得到相應(yīng)的相機矩陣。其中,現(xiàn)實世界中哦的三維點,一般成為對象點,由于棋盤格中每個方塊都是等距的,故可直接建立為類似(1,0,0), (2,0,0)...即可

objp = np.zeros((6*7,3), np.float32)
objp[:,:2] = np.mgrid[0:7,0:6].T.reshape(-1,2)

pObj = np.zeros((w*h, 3), np.float32)
pObj[:,:2] = np.mgrid[0:w, 0:h].T.reshape(-1,2)
pObjs = [pObj for _ in range(len(pImgs))]

至此,萬事俱備,只需調(diào)用

size = grays[0].shape[::-1]     # 圖像尺寸
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(pObjs, pImgs, size, None, None)

其中,rec為成功標(biāo)志,為True時表示標(biāo)定成功。

mtx為內(nèi)參矩陣,差不多是

dist為畸變參數(shù),最多有8個,分別表示k1,k2,p1,p2,k3,k4,k5,k6,本次標(biāo)定得到的結(jié)果為

>>> print(dist)
[[-8.36577030e-02 -1.68977185e-01 -1.12233478e-03  9.45685802e-04
  -2.04246147e+01]]

這些畸變參數(shù)的物理意義如下

以上就是Python+OpenCV實現(xiàn)相機標(biāo)定的方法詳解的詳細內(nèi)容,更多關(guān)于Python OpenCV相機標(biāo)定的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python集合操作方法詳解

    Python集合操作方法詳解

    這篇文章主要介紹了Python集合操作方法詳解,需要的朋友可以參考下
    2020-02-02
  • 詳解Django中Request對象的相關(guān)用法

    詳解Django中Request對象的相關(guān)用法

    這篇文章主要介紹了詳解Django中Request對象的相關(guān)用法,Django是Python重多人氣框架中最著名的一個,需要的朋友可以參考下
    2015-07-07
  • Python自定義sorted排序?qū)崿F(xiàn)方法詳解

    Python自定義sorted排序?qū)崿F(xiàn)方法詳解

    這篇文章主要介紹了Python自定義sorted排序?qū)崿F(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 在python 不同時區(qū)之間的差值與轉(zhuǎn)換方法

    在python 不同時區(qū)之間的差值與轉(zhuǎn)換方法

    今天小編就為大家分享一篇在python 不同時區(qū)之間的差值與轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python代碼操作Excel條件格式的實戰(zhàn)指南

    Python代碼操作Excel條件格式的實戰(zhàn)指南

    用代碼操作Excel條件格式,本質(zhì)上就是把你手動點鼠標(biāo)的步驟寫成腳本,數(shù)據(jù)更新了,腳本跑一遍,格式自動生成,下面我們就來看看具體的實現(xiàn)方法吧
    2026-03-03
  • python算法測試結(jié)果自動保存到excel表格的實現(xiàn)步驟

    python算法測試結(jié)果自動保存到excel表格的實現(xiàn)步驟

    我們在進行算法評估是通常會針對每個樣本的算法處理結(jié)果進行統(tǒng)計,例如每個樣本正確預(yù)測數(shù)量、漏檢數(shù)量和誤檢數(shù)量、精度等,本文小編將給大家介紹python算法測試結(jié)果自動保存到excel表格的實現(xiàn)步驟,感興趣的朋友可以參考下
    2023-12-12
  • Python系統(tǒng)公網(wǎng)私網(wǎng)流量監(jiān)控實現(xiàn)流程

    Python系統(tǒng)公網(wǎng)私網(wǎng)流量監(jiān)控實現(xiàn)流程

    這篇文章主要介紹了Python系統(tǒng)公網(wǎng)私網(wǎng)流量監(jiān)控實現(xiàn)流程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 詳解KMP算法以及python如何實現(xiàn)

    詳解KMP算法以及python如何實現(xiàn)

    這篇文章主要介紹了KMP算法的相關(guān)知識以及python如何實現(xiàn),幫助大家更好的進行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2020-09-09
  • Python如何篩選序列中的元素的方法實現(xiàn)

    Python如何篩選序列中的元素的方法實現(xiàn)

    這篇文章主要介紹了Python如何篩選序列中的元素的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 手把手教你如何使python變?yōu)榭蓤?zhí)行文件

    手把手教你如何使python變?yōu)榭蓤?zhí)行文件

    對于exe可執(zhí)行文件,相信大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于如何使python變?yōu)榭蓤?zhí)行文件的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-02-02

最新評論

新乡县| 准格尔旗| 金华市| 东辽县| 隆昌县| 绍兴市| 静乐县| 霍邱县| 岳阳县| 利川市| 东安县| 临潭县| 敦煌市| 玉山县| 安图县| 石台县| 吉林市| 高邑县| 黑水县| 七台河市| 陆川县| 油尖旺区| 清徐县| 台安县| 理塘县| 韶关市| 津市市| 文安县| 油尖旺区| 古丈县| 和林格尔县| 祥云县| 凌云县| 星座| 凤凰县| 承德市| 东丽区| 晋江市| 安宁市| 商都县| 玉环县|