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

COI實(shí)驗(yàn)室技能:python控制相機(jī)的方法——采集、處理、顯示、實(shí)時(shí)

這篇具有很好參考價(jià)值的文章主要介紹了COI實(shí)驗(yàn)室技能:python控制相機(jī)的方法——采集、處理、顯示、實(shí)時(shí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

COI實(shí)驗(yàn)室技能:python控制相機(jī)的方法——采集、處理、顯示、實(shí)時(shí)

??本文介紹如何利用python控制辦公攝像頭、工業(yè)相機(jī)和科研相機(jī)。將數(shù)據(jù)采集和處理統(tǒng)一到python代碼中。
??主要圍繞解決采用什么庫(kù)、掌握這個(gè)庫(kù)的控制相機(jī)方法(參數(shù)配置、讀取數(shù)據(jù)等等)、結(jié)合自己的算法進(jìn)行處理、保存顯示結(jié)果。
??基本流程:導(dǎo)入相關(guān)的庫(kù) -> 讀取圖片的方法 -> 處理數(shù)據(jù) -> 結(jié)果保存、顯示等等。

python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)

預(yù)備內(nèi)容:
● 掌握python語(yǔ)言以及安裝加載包的方法(cv2)
● pointgray官網(wǎng)SDK及Python庫(kù):https://meta.box.lenovo.com/v/link/view/a1995795ffba47dbbe45771477319cc3
● PCO相機(jī)介紹python控制方法:https://www.pco.cn/software/third-party-software/python/

1. python控制辦公攝像頭

?? 使用cv2庫(kù)可以直接控制家用攝像頭(usb連接主機(jī)后,可以直接用電腦自帶相機(jī)軟件打開),讀取的圖像是numpy數(shù)組。具體實(shí)現(xiàn)方法如下:

# 實(shí)時(shí)在線測(cè)試家用攝像頭
# 流程:讀取圖像 -> 預(yù)處理 -> 實(shí)時(shí)顯示

import cv2
import time
import numpy as np

# 初始化
cv2.destroyAllWindows(), time.sleep(0.003)  # 清空cv2顯示的窗口
# gap = (np.ones([448, 20], dtype=np.float32)*65535).astype(np.uint16)
cap = cv2.VideoCapture(0)		# 指定相機(jī)
one = np.ones([480, 640, 3], dtype=np.uint8)*255	# 本demo的需求,用于計(jì)算1-img的結(jié)果,實(shí)現(xiàn)圖像色彩負(fù)片

while True:
    start = time.time()	# 記錄開始時(shí)間
    # 讀取圖像
    ret, frame = cap.read()	# 讀取為numpy數(shù)組
    # 預(yù)處理
    frame_1 = one - frame
    # 顯示圖像
    cv2.imshow('frame', np.concatenate([frame, frame_1], axis=1))	# 并排顯示原圖和處理后的圖像
    if cv2.waitKey(1) == 27:    # 按下ESC鍵退出
        break
    # 打印幀率
    print('幀率:{:.4f} fps'.format(1.0/(time.time()-start)))

# 釋放資源
cap.release()
cv2.destroyAllWindows()

運(yùn)行結(jié)果:
python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)
圖1 家用相機(jī)的python控制運(yùn)行結(jié)果

2. python控制工業(yè)相機(jī)的例子

??這一節(jié)以工業(yè)相機(jī)pointgray為例,介紹python如何控制pointgray相機(jī)。
??控制工業(yè)相機(jī)筆者測(cè)試了很多辦法(cv2.VideoCapture(0),pyflycap2,PyCapture2),很多方法都不行,最后成功運(yùn)行的是用官網(wǎng)提供的相關(guān)資料,pointgray官網(wǎng)SDK及Python庫(kù):https://meta.box.lenovo.com/v/link/view/a1995795ffba47dbbe45771477319cc3,下面下載的壓縮包中有readme文件,它也詳細(xì)講述了安裝步驟。

2.1 環(huán)境配置

??裝包流程:下載應(yīng)用程序和python庫(kù) -> 進(jìn)行安裝 -> 運(yùn)行demo程序 -> 進(jìn)行自己的開發(fā)。

1)從官網(wǎng)中下載對(duì)應(yīng)的SpinnakerSDK應(yīng)用程序(筆者是64位電腦,就安裝了x64的包),下載完之后進(jìn)行安裝(默認(rèn)形式安裝即可),裝完之后打開應(yīng)用程序,應(yīng)用程序在安裝路徑的bin文件夾下,如何可以用軟件打開相機(jī),說(shuō)明連接上沒(méi)有問(wèn)題,準(zhǔn)備下一步;
python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)
軟件成功打開相機(jī),并能夠控制相機(jī);
python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)
2)下載python版本的壓縮包,如下圖,進(jìn)入到python文件夾中,下載對(duì)應(yīng)電腦系統(tǒng)和python版本的壓縮包;
python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)
3)隨便解壓到一個(gè)文件夾,打開文件夾,復(fù)制.whl文件到cmd的默認(rèn)路徑(一般是C:\user\xxx),使用pip install xxx.whl進(jìn)行安裝。
python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)
安裝完之后,可以在命令行中輸入pip list來(lái)檢查pyspin包是否安裝好了:
python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)
安裝成功之后就可以使用這個(gè)庫(kù)對(duì)相機(jī)進(jìn)行控制了。

2.2 控制pointgray相機(jī)

??因?yàn)榘惭b好的庫(kù)是小寫的,官網(wǎng)給的代碼示例都是大寫的,直接導(dǎo)入PySpin會(huì)出錯(cuò),因此這里需要到入庫(kù)名稱為pyspin。

# 使用PySpin控制pointgray相機(jī)

import cv2
import numpy as np
import pyspin as PySpin

# 初始化
system = PySpin.System.GetInstance()    # 創(chuàng)建系統(tǒng)對(duì)象
cam_list = system.GetCameras()          # 獲取相機(jī)列表
cam = cam_list.GetByIndex(0)            # 選擇要使用的相機(jī)
cam.Init()
cam.AcquisitionMode.SetValue(PySpin.AcquisitionMode_Continuous) # 采集模式為連續(xù)采集
cam.BeginAcquisition()                  # 開始采集

# 循環(huán)
while True:
    # 讀取圖像
    image_result = cam.GetNextImage(1000)
    img = image_result.GetNDArray()         # 轉(zhuǎn)為numpy數(shù)組
    # 顯示圖像
    n, m = (int(img.shape[0]/3), int(img.shape[1]/3))   # 縮小尺寸
    img_resize = cv2.resize(img, (m, n))                # 縮小后的圖像
    cv2.imshow('frame', np.concatenate([img_resize, 255-img_resize], axis=1))  # 并排顯示原圖和處理后的圖像
    # 按下 'q' 鍵退出循環(huán)
    if cv2.waitKey(1) == ord('q'):
        break

# 停止采集
cam.EndAcquisition()
# 關(guān)閉相機(jī)
cam.DeInit()
# 釋放系統(tǒng)資源
del cam
del cam_list
system.ReleaseInstance()
cv2.destroyAllWindows()

結(jié)果:
python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)

3. python控制科研相機(jī)

??以PCO相機(jī)為例,1) 使用pip install pco安裝控制PCO相機(jī)所需要的庫(kù);2)使用庫(kù)初始化相機(jī)參數(shù)和讀取數(shù)據(jù);3)進(jìn)行后續(xù)自己的數(shù)據(jù)處理;
??PCO官網(wǎng)提供的說(shuō)明文檔也有非常具體的操作指南,讀者可以下載下來(lái)進(jìn)一步學(xué)習(xí)。
PCO相機(jī)介紹python控制方法:https://www.pco.cn/software/third-party-software/python/

import cv2
import pco

# 清空cv2顯示的窗口
cv2.destroyAllWindows(), time.sleep(0.003)  

# 初始化相機(jī)
cam = pco.Camera()  # 指定相機(jī)
exp_time = 0.01
cam.set_exposure_time(exp_time)
cam.record(4, mode='ring buffer')  # 啟動(dòng)相機(jī)
cam.wait_for_first_image()

while True:
	img, meta = cam.image(image_number=0xFFFFFFFF)	# 讀取為numpy數(shù)組
	# 執(zhí)行數(shù)據(jù)處理
	# xxx

	# 顯示圖像
	cv2.imshow('frame', img)	# 并排顯示原圖和處理后的圖像
	# 按下 'q' 鍵退出循環(huán)
    if cv2.waitKey(1) == ord('q'):
        break
# 釋放資源
cv2.waitKey(-1)
cam.close()
cv2.destroyAllWindows()

如圖是筆者實(shí)時(shí)運(yùn)行一個(gè)去散射的結(jié)果:
python 控制佳能相機(jī),計(jì)算光學(xué)成像COI實(shí)驗(yàn)室技能,python,開發(fā)語(yǔ)言,數(shù)碼相機(jī)
如果有自動(dòng)調(diào)節(jié)曝光時(shí)間的需求,可以在上面循環(huán)語(yǔ)句中的xxx位置放置下面這段代碼:

if np.max(img[543:1438:2, 560:1455:2]) == 65535:    # 過(guò)曝了,縮小曝光時(shí)間
    exp_time = exp_time*55000/65535
    cam.set_exposure_time(exp_time)
    print('exp_time: ', exp_time)
elif np.max(img[543:1438:2, 560:1455:2]) > 50000:   # 最大像素值>50000, 無(wú)需調(diào)節(jié)
    pass
else:                                               # 最大像素值<50000, 增加曝光時(shí)間
    exp_time = exp_time*55000/np.max(img[543:1438:2, 560:1455:2])
    cam.set_exposure_time(exp_time)
    print('exp_time: ', exp_time)

自適應(yīng)曝光的實(shí)現(xiàn)過(guò)程:利用圖像的最大值分布在50000~65535之間的約束來(lái)調(diào)節(jié)曝光時(shí)間,首先計(jì)算采集圖像的最大值I_max,執(zhí)行判斷:1)如果最大值等于65535(說(shuō)明過(guò)曝),增益系數(shù)α=55000/65535,用exp_time = αexp_time來(lái)縮小曝光時(shí)間;2)如果最大值大于50000,略過(guò);3)如果最大值小于50000,增益系數(shù)α=55000/I_max,用exp_time = αexp_time來(lái)增大曝光時(shí)間。說(shuō)明:考慮到不同幀之間最大值會(huì)波動(dòng),所以用55000這個(gè)中間值來(lái)計(jì)算增益α,這樣即使有波動(dòng),只要最大值大于50000,我們就不用更新曝光時(shí)間,從而在程序上只執(zhí)行一行判斷語(yǔ)句,對(duì)整體運(yùn)行效率幾乎沒(méi)有影響。

4. 實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的實(shí)現(xiàn)

??采集完圖片和處理之后,只要外部增加一個(gè)循環(huán)語(yǔ)句,就可以實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè),實(shí)時(shí)看到自己算法的效果。

while True:
	img = cam.capture()	# 這行命名是示例,要根據(jù)具體的讀取命令進(jìn)行編寫
	cv2.imshow('windows', img)
	# 按下 'q' 鍵退出循環(huán)
    if cv2.waitKey(1) == ord('q'):
        break

其他相關(guān)資料:
● matlab控制pointgray工業(yè)相機(jī):https://www.flir.cn/support-center/iis/machine-vision/application-note/getting-started-with-matlab/
● matlab控制pco相機(jī):https://blog.csdn.net/qq_34917728/article/details/121527862文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-540300.html

到了這里,關(guān)于COI實(shí)驗(yàn)室技能:python控制相機(jī)的方法——采集、處理、顯示、實(shí)時(shí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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)文章

  • 基于Django高校校園教室實(shí)驗(yàn)室房間預(yù)約管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(Pycharm+Python+Mysql)

    基于Django高校校園教室實(shí)驗(yàn)室房間預(yù)約管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(Pycharm+Python+Mysql)

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實(shí)戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計(jì)教育和輔導(dǎo)。 所有項(xiàng)目都配有從入門到精通的基礎(chǔ)知識(shí)視頻課程,學(xué)習(xí)后應(yīng)對(duì)畢業(yè)設(shè)計(jì)答辯。 項(xiàng)目配有對(duì)應(yīng)開發(fā)文檔、

    2024年03月18日
    瀏覽(40)
  • 智慧校園實(shí)驗(yàn)室安全綜合管理平臺(tái)如何保障實(shí)驗(yàn)室安全?

    智慧校園實(shí)驗(yàn)室安全綜合管理平臺(tái)如何保障實(shí)驗(yàn)室安全?

    一、建設(shè)思路 實(shí)驗(yàn)室安全綜合管理平臺(tái)是基于以實(shí)驗(yàn)室安全,用現(xiàn)代化管理思想與人工智能、大數(shù)據(jù)、互聯(lián)網(wǎng)技術(shù)、物聯(lián)網(wǎng)技術(shù)、云計(jì)算技術(shù)、人體感應(yīng)技術(shù)、語(yǔ)音技術(shù)、生物識(shí)別技術(shù)、手機(jī)APP、自動(dòng)化儀器分析技術(shù)有機(jī)結(jié)合,通過(guò)建立以實(shí)驗(yàn)室為中心的管理體系,從人員、

    2024年01月20日
    瀏覽(32)
  • 基于VR技術(shù)的新型實(shí)驗(yàn)室教學(xué)模式——VR線上生物實(shí)驗(yàn)室

    基于VR技術(shù)的新型實(shí)驗(yàn)室教學(xué)模式——VR線上生物實(shí)驗(yàn)室

    隨著科技的發(fā)展,虛擬現(xiàn)實(shí)技術(shù)已經(jīng)逐漸走進(jìn)了我們的生活。在教育領(lǐng)域中,虛擬現(xiàn)實(shí)技術(shù)也被廣泛應(yīng)用于各種學(xué)科的教學(xué)中。其中,VR線上生物實(shí)驗(yàn)室是廣州華銳互動(dòng)開發(fā)的,一種基于VR技術(shù)的新型教學(xué)模式,它能夠?yàn)閷W(xué)生提供更加真實(shí)、生動(dòng)的實(shí)驗(yàn)體驗(yàn),同時(shí)也能夠更好地

    2024年02月14日
    瀏覽(29)
  • 實(shí)驗(yàn)室安全

    [判斷題] 基于安全考慮,每個(gè)實(shí)驗(yàn)房間每天最后一個(gè)離開的同學(xué)必須確保進(jìn)行斷電處理【4分】 正確答案:B 解析:暫無(wú)解析 [判斷題] 實(shí)驗(yàn)用電烙鐵應(yīng)有專門擱架,用畢立即切斷電源【4分】 正確答案:A 解析:暫無(wú)解析 [判斷題] 集中供氣是解決實(shí)驗(yàn)室存放過(guò)多氣瓶的有效途徑

    2024年02月08日
    瀏覽(39)
  • 新知實(shí)驗(yàn)室

    新知實(shí)驗(yàn)室

    TUIRoom 是一個(gè)包含 UI 的開源音視頻組件,通過(guò)集成 TUIRoom,可以在業(yè)務(wù)中快速上線音視頻房間,屏幕分享,聊天等功能。 項(xiàng)目是開源的項(xiàng)目,根據(jù)自己 的需求設(shè)計(jì)項(xiàng)目。 創(chuàng)建步驟如下 : 一、? 開通騰訊云實(shí)時(shí)音視頻及即時(shí)通信服務(wù) TUIRoom 基于騰訊云實(shí)時(shí)音視頻和即時(shí)通信服

    2024年02月03日
    瀏覽(23)
  • 實(shí)驗(yàn)室安全考試

    1、[判斷題] 火災(zāi)對(duì)實(shí)驗(yàn)室構(gòu)成的威脅最為嚴(yán)重,最為直接。應(yīng)加強(qiáng)對(duì)火災(zāi)三要素(易燃物、助燃物、點(diǎn)火源)的控制。 (分值1.0) 你的答案: 正確 2、[判斷題] 50毫安的工頻電流就可以使人遭到致命電擊。 (分值1.0) 你的答案: 正確 3、[判斷題] 用電安全的基本要素有:電

    2024年02月06日
    瀏覽(33)
  • 決策樹(實(shí)驗(yàn)室會(huì)議小記)

    決策樹(實(shí)驗(yàn)室會(huì)議小記)

    特征過(guò)多導(dǎo)致過(guò)擬合、有一些特征是噪音。 1、 嘗試所有組合:也是全局最優(yōu) 2、貪心算法:每次決策都是基于當(dāng)前情況去尋找最優(yōu)解。計(jì)算過(guò)程:把特征加進(jìn)去→是否更優(yōu)?→是:加入模型/否:淘汰 3、L1正則:目標(biāo)函數(shù)為損失函數(shù);特點(diǎn):具有稀疏性 4、決策樹:節(jié)點(diǎn)代表

    2024年02月08日
    瀏覽(32)
  • 【新知實(shí)驗(yàn)室】TRTC騰訊實(shí)時(shí)音視頻動(dòng)手實(shí)驗(yàn)

    【新知實(shí)驗(yàn)室】TRTC騰訊實(shí)時(shí)音視頻動(dòng)手實(shí)驗(yàn)

    https://cloud.tencent.com/document/product/647/16788 應(yīng)用 TRTC 通過(guò)應(yīng)用的形式來(lái)管理不同的業(yè)務(wù)或項(xiàng)目。您可以在 TRTC 控制臺(tái) 給不同的業(yè)務(wù)或項(xiàng)目分別創(chuàng)建不同的應(yīng)用,從而實(shí)現(xiàn)業(yè)務(wù)或項(xiàng)目數(shù)據(jù)的隔離。每個(gè)騰訊云賬號(hào)最多可以創(chuàng)建100個(gè) TRTC 應(yīng)用。 SDKAppID SDKAppID(應(yīng)用標(biāo)識(shí)/應(yīng)用 ID)是騰

    2024年02月01日
    瀏覽(30)
  • 新知實(shí)驗(yàn)室-TRTC如此簡(jiǎn)單

    騰訊實(shí)時(shí)音視頻(Tencent Real-Time Communication,TRTC),將騰訊多年來(lái)在網(wǎng)絡(luò)與音視頻技術(shù)上的深度積累,以多人音視頻通話和低延時(shí)互動(dòng)直播兩大場(chǎng)景化方案,通過(guò)騰訊云服務(wù)向開發(fā)者開放,致力于幫助開發(fā)者快速搭建低成本、低延時(shí)、高品質(zhì)的音視頻互動(dòng)解決方案。 1、多人音

    2023年04月27日
    瀏覽(20)
  • XShell連接實(shí)驗(yàn)室服務(wù)器

    XShell連接實(shí)驗(yàn)室服務(wù)器

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 前言 第一次連接實(shí)驗(yàn)室服務(wù)器跑代碼,因pycharm專業(yè)版學(xué)生認(rèn)證需要時(shí)間,所以自學(xué)了XShell連接服務(wù)器以及提交任務(wù),現(xiàn)在終于裝好了,趁著熱乎勁兒總結(jié)下,也希望對(duì)你有用。作者是新手小白,如有疏漏

    2024年01月24日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包