簡體   English   中英

如何在iOS上分析視頻流?

[英]How do I analyze video stream on iOS?

例如,有QR掃描儀實時掃描視頻流並獲得QR碼信息。 我想檢查視頻中的光源,如果它打開或關閉,它是非常強大的,所以它沒有問題。

我可能會將視頻流作為輸入,可能會制作圖像並分析圖像或實時流式傳輸光源(可能是圖像上某些顏色的像素數?)

我該如何處理這個問題? 也許有一些圖書館的來源?

這聽起來像是在詢問有關幾個謹慎步驟的信息。 有很多種方法可以做到每一種方法,如果你遇到任何一個步驟,最好單獨發布一個關於它的問題。

1:獲取視頻幀

就像chaitanya.varanasi所說,AVFoundation Framework是在IOS上訪問視頻幀的最佳方式。 如果你想要一些不那么靈活和快速的東西,試着看看開放式CV的視頻捕捉 此步驟的目標是從相機訪問像素緩沖區。 如果您遇到此問題,請特別詢問。

2:將像素緩沖區放入OpenCV

這部分非常簡單。 如果你從openCV的視頻捕獲中獲得它,你已經完成了。 如果從AVFoundation獲得它,你需要將它放入openCV中

//Buffer is of type CVImageBufferRef, which is what AVFoundation should be giving you
//I assume it is BGRA or RGBA formatted, if it isn't, change CV_8UC4 to the appropriate format

CVPixelBufferLockBaseAddress( Buffer, 0 );

int bufferWidth = CVPixelBufferGetWidth(Buffer);
int bufferHeight = CVPixelBufferGetHeight(Buffer);

unsigned char *pixel = (unsigned char *)CVPixelBufferGetBaseAddress(Buffer);
cv::Mat image = cv::Mat(bufferHeight,bufferWidth,CV_8UC4,pixel); //put buffer in open cv, no memory copied

//Process image Here

//End processing
CVPixelBufferUnlockBaseAddress( pixelBuffer, 0 );

注意我假設您計划在OpenCV中執行此操作,因為您使用了它的標記。 另外我假設您可以將OpenCV框架鏈接到您的項目。 如果這是一個問題,請詢問有關它的具體問題。

3:過程圖像

這部分是迄今為止最開放的部分。 你所說的關於你的問題的一切都是你試圖檢測一個強大的光源。 一種非常快速簡便的方法是檢測灰度圖像中的平均像素值。 如果您獲得彩色圖像,可以使用cvtColor進行轉換。 然后只需在其上調用Avg即可獲得平均值。 希望你可以通過該值如何波動來判斷燈是否亮起。

chaitanya.varanasi提出了另一種選擇,你也應該檢查一下。

openCV是一個非常大的庫,可以做各種各樣的事情。 在不了解您的問題的情況下,我不知道還能告訴您什么。

看看Apple的AVFoundation Framework

希望能幫助到你!

您可以嘗試此方法:首先將所有圖像都添加到AVCaptureVideoDataOutput 從方法: captureOutput:didOutputSampleBuffer:fromConnection ,您可以采樣/計算每個像素。 來源: 回答

此外,你可以看看這個問題 ,他們檢查像素是否是黑色。 如果它是如此強大的光源,您可以取像素的倒數,然后使用設定的黑色閾值來確定。

上面的示例代碼僅提供對存儲在緩沖區中的像素值的訪問; 您不能運行任何其他命令,而是那些在逐個像素的基礎上更改這些值的命令:

for ( uint32_t y = 0; y < height; y++ )
{
    for ( uint32_t x = 0; x < width; x++ )
    {
        bgraImage.at<cv::Vec<uint8_t,4> >(y,x)[1] = 0;
    }
}

這 - 使用您的示例 - 將無法使用您提供的代碼:

    cv::Mat bgraImage = cv::Mat( (int)height, (int)extendedWidth, CV_8UC4, base );
cv::Mat grey = bgraImage.clone();
cv::cvtColor(grey, grey, 44);

暫無
暫無

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

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