欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenCV實現(xiàn)單目攝像頭對圖像目標測距

 更新時間:2022年08月01日 09:12:17   作者:奶茶不加冰  
這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)單目攝像頭對圖像目標測距,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

使用opencv對單目攝像頭中的目標實現(xiàn)測量距離(python實現(xiàn)),供大家參考,具體內(nèi)容如下

1.方法介紹:

根據(jù)相似三角形的方法:

F = P×D / W , 其中W為物體的實際寬度,D為物體平面與相機平面的距離,照片上物體的像素寬度為P,相機焦距為F
D = F×W / P ,這樣知道相機的內(nèi)參焦距就可以求得物體平面與相機平面的距離D

2.代碼:

import cv2
import imutils
import numpy as np
from imutils import paths


# 獲取目標的輪廓信息
def find_marker(image):

? ? gray = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) ?# 顏色空間轉(zhuǎn)換函數(shù),RGB和BGR顏色空間轉(zhuǎn)換 opencv默認的顏色空間是BGR
? ? gray = cv2.GaussianBlur(gray, (5, 5), 0) ?# 高斯濾波,對圖像進行濾波操作 ,(5,5)表示高斯核的大小 ,0 表示標準差取0
? ? edged = cv2.Canny(gray, 35, 125) ?# canny 算子 邊緣檢測 35是閾值1, 125是閾值2,大的閾值用于檢測圖像中的明顯邊緣,小的閾值用于將不明顯的邊緣檢測連接起來

? ? cnts = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) ?# 找到詳細的輪廓點, RETR_LIST 以列表的形式輸出輪廓信息
? ? # CHAIN_APPROX_SIMPLE: 壓縮水平方向,垂直方向,對角線方向的元素,只保留該方向的終點坐標

? ? cnts = imutils.grab_contours(cnts) ?# 尋找圖像的輪廓信息,輸入圖像為一個二值圖像

? ? c = max(cnts, key=cv2.contourArea) ?# 輪廓點的面積計算
? ? # return edged
? ? return cv2.minAreaRect(c) ?# 求出在 C點集下的像素點的面積


def get_F(W, D):

? ? P = find_marker(image)[1][0] / 118.11 ?# 300dim ?1cm = 118.11像素值

? ? return (P*D) / W ?# F = get_F(2, 126) ?# 輸出的值為cm f=24.003cm 焦距


def distance_to_camera(F, P, W):

? ? return (F*W) / P ?# F 為相機的焦距,w為物體的寬度,P為物體在照片中的像素寬度,需要轉(zhuǎn)換為cm


W = 2 ?# 需要手動測量目標的寬度,單位為cm
F = 24.00304 ?# 根據(jù)get_F求出 ,get_F()函數(shù)是為了求得相機的焦距,需要通過測試圖像中的目標距離來求出

image = cv2.imread('065_5.jpg')
marker = find_marker(image)
P = marker[1][0] / 118.11 ?# 300dim 1cm = 118.11像素值 ,300dim指300分辨率,有1080分辨率,像素值的㎝轉(zhuǎn)換是不同
inches = distance_to_camera(F, P, W) #
print('距離為:%.2f cm' % inches) ?# 單位為cm

# draw a bounding box around the image and display it
box = cv2.cv.BoxPoints(marker) if imutils.is_cv2() else cv2.boxPoints(marker)
box = np.int0(box)
cv2.drawContours(image, [box], -1, (0, 255, 0), 2)
cv2.putText(image, "%.2fft" % inches,
? ? ? ? ? ? (image.shape[1] - 200, image.shape[0] - 20), cv2.FONT_HERSHEY_SIMPLEX,
? ? ? ? ? ? 2.0, (0, 255, 0), 3)
cv2.imshow("image", image)

cv2.waitKey(0)
cv2.destroyAllWindows()

3.效果驗證

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python騷操作完美實現(xiàn)短視頻偽原創(chuàng)

    Python騷操作完美實現(xiàn)短視頻偽原創(chuàng)

    剪輯的視頻上傳到某平臺碰到降權(quán)怎么辦?視頻平臺都有一套自己的鑒別算法,專門用于處理視頻的二次剪輯,本篇我們來用python做一些特殊處理
    2022-02-02
  • 13個你可能未使用過的Python特性分享

    13個你可能未使用過的Python特性分享

    Python?是頂級編程語言之一,它具有許多程序員從未使用過的許多隱藏功能。在這篇博客中,將和大家分享一下你可能從未使用過的13?個?Python?特性,感興趣的可以學習一下
    2022-11-11
  • pandas高效讀取大文件的示例詳解

    pandas高效讀取大文件的示例詳解

    使用?pandas?進行數(shù)據(jù)分析時,第一步就是讀取文件,所以這篇文章主要來和大家討論一下pandas如何高效讀取大文件,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2024-01-01
  • PyTorch 中的傅里葉卷積實現(xiàn)示例

    PyTorch 中的傅里葉卷積實現(xiàn)示例

    這篇文章主要介紹了PyTorch 中的傅里葉卷積實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Python高級編程之繼承問題詳解(super與mro)

    Python高級編程之繼承問題詳解(super與mro)

    這篇文章主要介紹了Python高級編程之繼承問題,結(jié)合實例形式詳細分析了Python多繼承、MRO順序及super調(diào)用父類等相關操作技巧,需要的朋友可以參考下
    2019-11-11
  • Python面試不修改數(shù)組找出重復的數(shù)字

    Python面試不修改數(shù)組找出重復的數(shù)字

    這篇文章主要為大家介紹了不修改數(shù)組找出重復的數(shù)字Python實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python中numpy數(shù)組真值判斷的實現(xiàn)

    Python中numpy數(shù)組真值判斷的實現(xiàn)

    在Python編程中,經(jīng)常需要對數(shù)組進行真值判斷,本文就來介紹一下Python中numpy數(shù)組真值判斷的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • python+pygame實現(xiàn)代碼雨(黑客帝國既視感)

    python+pygame實現(xiàn)代碼雨(黑客帝國既視感)

    這篇文章主要介紹了python+pygame實現(xiàn)代碼雨(黑客帝國既視感),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 利用Python寫個簡易版星空大戰(zhàn)游戲

    利用Python寫個簡易版星空大戰(zhàn)游戲

    通過小編觀察,大家好像對劃水摸魚是情有獨鐘啊。所以本文給大家?guī)砹艘粋€用Python編寫的簡單版的星空大戰(zhàn)小游戲,感興趣的小伙伴可以動手試一試
    2022-03-03
  • Python之random.sample()和numpy.random.choice()的優(yōu)缺點說明

    Python之random.sample()和numpy.random.choice()的優(yōu)缺點說明

    這篇文章主要介紹了Python之random.sample()和numpy.random.choice()的優(yōu)缺點說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論