2011-01-29 69 views
1

我正在研究嵌入式家庭監控系統。我想要連接幾個支持串行的JPEG捕捉攝像頭,也許是幾個門傳感器等等。問題是,我不知道如何將攝像頭連接到微控制器。劇照,流媒體視頻,沒關係 - 我找不到任何有關此方面的指導性文檔。嵌入式圖像捕獲 - 需要幫助入門

我瞭解串行通信,以及我在那裏發現的大部分相機文檔都描述了指示相機將數據流發送到uC進行捕獲所必需的協議。他們沒有展示的是你一旦得到數據就應該做什麼。

Here's an example

他們展示了一個很棒的小視頻,數據表描述了必須發送哪些字節到相機以檢索圖像。我需要的是某種類型的示例或教程,它將解釋如何處理組成圖像本身的字節流。如何將這些字節排列成圖像並將其保存爲文件?

我看遍了各地的某種教程,但已經幹了。我不確定哪個處理器可以用於這個項目,但這個問題並不是真正依賴於處理器的。我所需要的只是算法,如果存在的話,也許只是在圖書館偷看。我會採取這一過程,並將其適應我的硬件,我似乎無法找到一個開始的地方。

你們有沒有做過?

+0

這是一個寫得不好的數據表! 「包的大小不能是奇數或16的倍數」,然後指出64和512的倍數爲16的限制,所以它們可能意味着應該。而包可能是一個錯誤的數據包翻譯......無論如何,如果你重新組裝「包」並將它們作爲一個文件寫出來,你偶然會得到一個有效的JPEG文件?你至少可以在那裏尋找一個jpeg標題。解碼他們的原始圖像可能會更困難,但你可能會得到一個結構化的場景(垂直或水平白/黑分割)和十六進制轉儲的地方... – 2011-01-29 02:59:26

+0

如果你確定你接收到的字節流包含圖像,爲什麼不你將它保存爲二進制文件並與我們分享?那些沒有相機幫助你的人會更容易。 – misha 2011-01-29 03:03:26

回答

3

我認爲細節在第10頁相當清楚本文檔內:

http://www.4dsystems.com.au/downloads/micro-CAM/Docs/uCAM-DS-rev4.pdf

首先,一個包是512之間64到字節 - 由程序員靈活定義的。圖像大小是實際的JPEG圖像本身....沒有更多或更少....只是純JPEG圖像。因此,計算基於image_size/package_size的封裝數量的公式在第10頁中給出。

接下來是(package_size - 6)在任何地方都一致使用,因爲6個字節用於非數據所以(package_size - 6)將只是數據 - 但你必須自己重新組裝它。

爲了從軟件包中組裝數據,你必須去掉4個字節的頭+ 2個字節的尾部,並將所有這些包依次串接在一起。

其他信息:

a。 「Set Package Size」命令必須從主機發送到CAM - 在「SNAPSHOT」命令之前,該命令將圖像從攝像機捕獲到CAM存儲器緩衝區中。

b。接下來是發送「SNAPSHOT」命令將圖像捕捉到內存緩衝區中。

c。最後是發送「GET PICTURE」命令(只有一次,但數據會多次返回 - 參見第15頁圖),以提取出所有圖像....並以「包」形式返回,因爲我們在「設置包裝大小」中早先定義了尺寸。既然你已經計算出公式,你就會知道什麼時候停止詢問下一個包裹。還有一個驗證字節 - 你必須使用它來確保數據是正確的。

0

我沒有使用過這臺相機,但看起來像它的作品完全一樣,是我用過的相機(C328)。發送圖像分辨率/顏色命令。當你想讓圖像發送一個圖像捕捉命令。攝像機通過串行鏈路發送二進制文件進行響應。