看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《ToyLoli (玩具蘿莉≠脫衣蘿莉)》之銘言: : 我手上有一台 AVT 1394 攝影機,他有給 SDK : 裡面有一段取得單一影像的範例是這樣的 : extern ID_TYPE nCamId; // id of an already opened camera : extern UINT32_TYPE nHorizontalResolution; // the currently configured image : // size : extern UINT32_TYPE nVerticalResolution; // : ATL::CImage Image; : Image.Create( nHorizontalResolution , -1 * nVerticalResolution , 24 ); : UNI_RETURN_TYPE hr = UCC_GrabBitmapImage( nCamId , : (UINT8_TYPE*) Image.GetBits() , : INFINITE ); : 黃色的部份我 google 了一下,好像是 VC 內建的函數? : 由於學長寫的程式是用 BCB,如果我要用 BCB 寫出相同的作用,應該要使用哪些元件 : 或是函式呢?可否請各位前輩提點一下? 自己回答看看,不知道對不對 黃色部份應該是要創建一個可以存影像的 buffer,參考書上的範例後寫出 Graphics::TBitmap *TempBitmap; TempBitmap = new Graphics::TBitmap(); TempBitmap -> Width = nHorizontalResolution; TempBitmap -> Height = nVerticalResolution; TempBitmap -> PixelFormat = pf24bit; compile 可以過,但是不知道對不對 因為接下來卡在 Image.GetBits() 不知道該怎樣改 囧 再次請教各位前輩該從哪方面著手 Orz -- 法輪弓 遠程 弓 8300 - 9500傷害 速度 1.50 (每秒傷害5933.3) 裝備: 你在中國解放軍的聲望將永久仇恨。 擊中時可能: 迫使敵人召喚一名武警為他作戰。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.126.145.206
WPC001:GetBits()只是取得整個影像資料的記憶體指標 05/24 18:52
WPC001:也就是Pixel(0,0)的位置... TBitmap你查一下,應該也有 05/24 18:53
唔...還是沒有任何頭緒,不知道該用什麼去取代 GetBits() 我嘗試著將 GetBits() 以 TempBitmap 取代是可以 compile 過 但是程式還是抓不到影像 另外,上面亮白色那邊,有人可以幫我看看這樣寫取代那兩行程式碼是對的嗎? ※ 編輯: ToyLoli 來自: 140.126.145.206 (05/24 22:33)
WPC001:你的Image object, 沒有初始化, 你必須告知建立的大小 05/25 12:45
WPC001:我不確定TBitmap直接指定Width和Height是否就會建立完成 05/25 12:46
WPC001:因為他的H/V/D是分開指定的, 感覺很怪... 05/25 12:47
VictorTom:TBitmap new過以後這樣用就可以了, 雖然我也搞不太懂它 05/25 12:50
VictorTom:怎麼依照重設的W/H/D來分配memory的....@_@" 05/25 12:51
VictorTom:如果是要拿到pixel data, TBitmap是直接 ->ScanLine[i] 05/25 12:52
VictorTom:i就是第條的scanline, 從0~Height-1, 至於每個pixel有 05/25 12:52
VictorTom:多少byte就看你的pixelformat了. 05/25 12:52
VictorTom:如果你是要顯示, 我記得直接丟個Panel給它就可以顯示了. 05/25 12:53
VictorTom:如果是用VCL元件bar上的TImage, 簡單的操作可以像這樣~~ 05/25 12:54
VictorTom:Image->Picture->Bitmap->....就可以access pixel了. 05/25 12:55
VictorTom:不過, 如果你的Image沒有load過Bitmap圖檔, 就不能直接 05/25 12:56
VictorTom:用, 還是要經過TBitmap new的程序才可以.... 05/25 12:56
VictorTom:有個問題是, TBitmap的ScanLine我不記得有保證一定連續 05/25 12:57
VictorTom:Image.GetBit應該是放destination吧, 那就自己開一塊 05/25 12:57
VictorTom:WxHxD的空間給它, 再一條一條scanline copy進TBitmap 05/25 12:58