簡體   English   中英

Raspberry Pi-Open CV和C ++

[英]Raspberry Pi - Open CV & C++

我們正在學校里做一個需要進行基本圖像處理的項目。 我們在項目中要做的是使用Raspberry Pi每50毫秒(或更短的時間)拍攝一張圖片,並進行實時圖像處理。

我們試圖將raspistill包含在我們的python程序中,但到目前為止沒有任何效果。 我們項目的目標是在圖像處理的幫助下設計一輛遵循藍色/紅色/任何彩色線條的RC汽車。

我們認為制作一個進行所有圖像處理必要的python程序是一個好主意,但是我們目前正在努力將記錄的圖像引入python程序中。 有沒有辦法用picamera做到這一點,還是我們應該嘗試其他方式?

預先感謝炭疽。

我只是在不編寫完整程序的情況下介紹如何執行此操作。 簡短的答案是,這是非常可能的,並且相對簡單。

步驟1 :從相機獲取圖像
為此,我建議您僅使用VideoCapture並處理每個VideoCapture圖像。可以這樣進行:

import numpy as np
import cv2
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read() # Read the current frame

第2步 :檢測顏色(我將舉例說明紅色)
為此,您將需要在RGB顏色空間中定義一些邊界。 為此,您實際上只需要確定一些上下邊界

boundaries = [
([17, 15, 100], [50, 56, 200]),
([25, 146, 190], [62, 174, 250])
]

這是兩個邊界的上下邊界。 例如([17, 15, 100], [50, 56, 200])表示我們正在尋找R>=17B>=15G>=100R<=50B<=56G<=200 是的,由於OpenCV中的默認方案,因此格式為RBG

步驟3 :放在一起

while True:
    ret, frame = cap.read() # Read the current frame
    for (lo, up) in boundaries:
        lo = np.array(lo, dtype='uint8')
        up = np.array(up, dtype='uint8')

        # Find the colors within those boundaries in the image
        mask = cv2.inRange(frame, lo, up)
        out = cv2.bitwise_and(frame, frame, mask=mask)

現在, out包含當前幀,但僅包含那些邊界內圖像中的red 然后,您可以確定圖像中是否有足夠的紅色可跟隨,或者轉動或轉動什么。 如果要實際確定它是否是某種類型的線,則還可以使用findContours來確定紅色對象的形狀,然后找出它是否是這種線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM