第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

pi camera: 相機(jī)已經(jīng)在使用端口 0

pi camera: 相機(jī)已經(jīng)在使用端口 0

見(jiàn)下文,以改進(jìn)對(duì)我的問(wèn)題的解釋我在我的 Raspberry Pi 上使用 OpenCV 4.1.2 編寫(xiě)了一個(gè)簡(jiǎn)單的線跟隨器。一切正常,但現(xiàn)在我想調(diào)用一個(gè)也使用 camera.capture_continous 函數(shù)的函數(shù)。當(dāng)我調(diào)用該函數(shù)時(shí)(它應(yīng)該順便檢測(cè)相機(jī)框架中的圓圈)它只拍攝一張照片,檢測(cè)到一些圓圈然后凍結(jié)并且不拍攝任何其他照片。這是我的源代碼的一部分:rawCapture = PiRGBArray(camera, size=(320, 180))rawCaptureCircles = PiRGBArray(camera, size=(320, 180))for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):      counter = counter + 1    image = frame.array    line = cv2.inRange(image, (0, 0, 0), (255, 255, 75))     if counter > 10: #call function        function()    rawCapture.truncate(0)和功能:for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):          imageCirles = frame.array        gray = cv2.cvtColor(imageCirles, cv2.COLOR_BGR2GRAY)        # detect circles in the image        circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 2, 400)        # ensure at least some circles were found        if circles is not None:            # convert the (x, y) coordinates and radius of the circles to integers            circles = np.round(circles[0, :]).astype("int")            # loop over the (x, y) coordinates and radius of the circles            for (x, y, r) in circles:                # draw the circle in the output image, then draw a rectangle                cv2.circle(imageCirles, (x, y), r, (255, 255, 0), 4)                cv2.rectangle(imageCirles, (x - 5, y - 5), (x + 5, y + 5), (0, 0, 255), -1)                cv2.putText(imageCirles, str(((x - 160) / 10) - 24), (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 0), 2)我希望現(xiàn)在一切都或多或少地清楚了。編輯:希望對(duì)我的問(wèn)題有更好的解釋:我很絕望!我已經(jīng)嘗試了(至少在我看來(lái))所有可能的方法,但該功能仍然不起作用。但是,如果我將函數(shù)的源代碼放入一個(gè)單獨(dú)的 python 文件中并執(zhí)行它,一切正常!我知道理論上的錯(cuò)誤是什么,但我真的不知道如何修復(fù)它。這是問(wèn)題的另一種解釋:名為 function() 的函數(shù)基本上可以正常工作(如果我將它放入一個(gè)空的 python 中并執(zhí)行它),但每次在我的正常程序中執(zhí)行 function() 時(shí),我都會(huì)收到以下錯(cuò)誤消息 The camera is already using port 0.這是因?yàn)樵诔绦虻恼Qh(huán)中for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True)用于創(chuàng)建無(wú)限循環(huán)但是如果現(xiàn)在調(diào)用 function(),第一行這導(dǎo)致我收到上述錯(cuò)誤消息。是否必須關(guān)閉攝像頭端口才能再次使用?
查看完整描述

1 回答

?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

我不知道你到底想做什么,但你的錯(cuò)誤是你使用了 second capture_continuous。您應(yīng)該只使用一個(gè)capture_continuous并發(fā)送frame(甚至image)作為參數(shù),function(frame)并且它應(yīng)該只使用 this frame。在處理完這個(gè)單幀后,它將返回到主循環(huán),主循環(huán)將function(frame)再次運(yùn)行 next frame- 所以它會(huì)像在capture_continuous


# --- functions ---


def function(frame):

    

    imageCirles = frame.array

    gray = cv2.cvtColor(imageCirles, cv2.COLOR_BGR2GRAY)


    # detect circles in the image

    circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 2, 400)


    # ensure at least some circles were found

    if circles is not None:


        # convert the (x, y) coordinates and radius of the circles to integers

        circles = np.round(circles[0, :]).astype("int")


        # loop over the (x, y) coordinates and radius of the circles

        for (x, y, r) in circles:

            # draw the circle in the output image, then draw a rectangle

            cv2.circle(imageCirles, (x, y), r, (255, 255, 0), 4)

            cv2.rectangle(imageCirles, (x - 5, y - 5), (x + 5, y + 5), (0, 0, 255), -1)


            cv2.putText(imageCirles, str(((x - 160) / 10) - 24), (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 0), 2)


# --- main ---


rawCapture = PiRGBArray(camera, size=(320, 180))


counter = 0


for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):  

    counter += 1


    image = frame.array

    line = cv2.inRange(image, (0, 0, 0), (255, 255, 75)) 


    if counter > 10: #call function

        function(frame)

        

    rawCapture.truncate(0)

編輯:


最終你可以使用break退出一個(gè)循環(huán)然后運(yùn)行另一個(gè)循環(huán)。


counter = 0


for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):  

    counter += 1


    image = frame.array

    line = cv2.inRange(image, (0, 0, 0), (255, 255, 75)) 


    if counter > 10: #call function

        break

        

    rawCapture.truncate(0)

    

for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):  


    function(frame)

        

    rawCapture.truncate(0)

我不確定,但它可能會(huì)造成很小的延遲。


如果第一個(gè)循環(huán)用于跟隨線,那么它將不再跟隨?,F(xiàn)在它將只檢查圓圈。如果你想同時(shí)跟隨線和檢查圓圈,那么你應(yīng)該capture_continuous像第一個(gè)例子一樣運(yùn)行所有的東西。


查看完整回答
反對(duì) 回復(fù) 2023-03-08
  • 1 回答
  • 0 關(guān)注
  • 88 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)