[問題] BCB抓webcam,並讀取其RGB值

看板C_and_CPP (C/C++)作者 (小草莓)時間16年前 (2009/12/10 21:54), 編輯推噓3(3014)
留言17則, 3人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 用BCB抓webcam的影像,以下是我程式的一小部份 ghCapWnd = capCreateCaptureWindow ( "Capture Window", WS_CHILD | WS_VISIBLE ,0,0,Panel1->Width,Panel1->Height,Panel1->Handle, 0); capGrabFrameNoStop(ghCapWnd); capEditCopy(ghCapWnd); Image1->Picture->LoadFromClipboardFormat(CF_BITMAP,Clipboard()-> GetAsHandle(CF_BITMAP),0); for(int i=0;i<10;i++) { a=capDriverConnect(ghCapWnd,i); if( a ) break ; } if( !a ) ShowMessage("攝影機連接失敗.."); // if (!capOverlay(ghCapWnd,true)) // { capPreviewRate(ghCapWnd,66); capPreview(ghCapWnd,true); // } } 由於在網路上找到的程式,都是擷取到panel裡 但是我需要把圖片存下來,並且作一些即時的運算(取得RGB值) 所以就把影像暫存到剪貼簿上,再放到Image上 我是用scanline去讀RGB值 但是現在卻發現,存下來的圖是32bit 我們推測應該是因為變成32bit的原因 才使得抓到的RGB值都是錯誤的 希望得到的正確結果: 我只想讀到webcam畫面上正確的RGB值啊!!!! 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) BCB 6 有問題的code: (請善用置底文標色功能) 補充說明: 救我....超級緊急的事情,發生在我這個才用BCB一個月的初學者身上 再搞不定,我就要被困在大陸回不去了 >"< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.130.244.127

12/10 22:12, , 1F
你怎麼判斷抓到的RGB值是錯的, 而不是你解讀抓到資料的
12/10 22:12, 1F

12/10 22:12, , 2F
方式搞錯了?_?
12/10 22:12, 2F

12/10 22:17, , 3F
我把程式寫成可以load BMP檔,或是webcam, 兩者都是放在image
12/10 22:17, 3F

12/10 22:18, , 4F
load BMP檔時讀到的數值就是正確的
12/10 22:18, 4F

12/10 22:18, , 5F
而且我有加入 PixelFormat=pf24bit
12/10 22:18, 5F

12/10 22:19, , 6F
請問抓到資料的方式有什麼錯誤的可能呢?
12/10 22:19, 6F

12/10 22:22, , 7F
加入PixelFormat=pf24bit還是有錯嗎??
12/10 22:22, 7F

12/10 22:23, , 8F
32bits有可能是RGBA的格式,取前三個就不會錯了
12/10 22:23, 8F

12/10 22:26, , 9F
BBMP = Image1->Picture->Bitmap;
12/10 22:26, 9F

12/10 22:26, , 10F
BBMP->PixelFormat=pf24bit;
12/10 22:26, 10F

12/10 22:27, , 11F
GrayPtr=(Byte*) BBMP->ScanLine[y];
12/10 22:27, 11F

12/10 22:28, , 12F
分別用GrayPtr[x*3] [x*3+1] [x*3+2] 取BGR值
12/10 22:28, 12F

12/10 22:28, , 13F
我是用這樣的寫法,但是錯了 >"<
12/10 22:28, 13F

12/10 23:17, , 14F
不要改pixelformat, 把32bits的圖四個channel都抓出來的
12/10 23:17, 14F

12/10 23:18, , 15F
話, 這樣子能不能找到三個正確的channel??
12/10 23:18, 15F

12/11 18:36, , 16F
已經解決囉~感謝兩位幫忙 ^^
12/11 18:36, 16F

12/11 19:19, , 17F
有點好奇最後到底是什麼問題....@_@"
12/11 19:19, 17F
文章代碼(AID): #1B8Fs533 (C_and_CPP)
文章代碼(AID): #1B8Fs533 (C_and_CPP)