全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2406
推到 Plurk!
推到 Facebook!

請問CCD經由panel取出再轉入image

尚未結案
kmesnblack
一般會員


發表:3
回覆:3
積分:1
註冊:2005-07-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-03 03:05:31 IP:220.139.xxx.xxx 未訂閱
#include  #pragma hdrstop #include #include #include #include "Unit1.h" #include <math.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; HWND hWndC,hWndD; // handle for capture video CAPTUREPARMS cap_setup; TClipboard *pCB; Graphics::TBitmap *picc; int count = 0; int chopixel,chomax,chomin,senstive=20; //chose pixel from image1 byte pixel2[320][240];//多值化矩陣(共6值..背景0 h1~h5(1~5)=6) void __fastcall rgb2hsi(int Pixel,int& h1,float& s1,float& i1); //============================================= //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { char szDeviceName[80]; char szDeviceVersion[80]; for (int wIndex=0;wIndex<10;wIndex ) { if(capGetDriverDescription(wIndex, szDeviceName, sizeof(szDeviceName), szDeviceVersion, sizeof(szDeviceVersion))) cbDriverList->Items->Add(szDeviceName); } btPreview->Enabled = false; hWndC = capCreateCaptureWindow("擷取視窗", WS_CHILD | WS_VISIBLE, 0, 0, 320, 240, Form1->Panel1->Handle, 1); //The capCreateCaptureWindow function creates a capture window if (!hWndC) ShowMessage("capCreateCaptureWindow initialized failed"); } //--------------------------------------------------------------------------- LRESULT CALLBACK fpVideoCallback(HWND hWndC,LPVIDEOHDR lpVHdr) { char *a = (char *)lpVHdr->lpData; picc = Form1->Image1->Picture->Bitmap; if(!picc->Empty) { picc->PixelFormat = pf32bit; for (int Row=0; Row <=239 ; Row ) { RGBQUAD *Pixel = (RGBQUAD *) picc->ScanLine[Row]; for (int Col=0; Col <320; Col , Pixel ) { Pixel->rgbBlue = (BYTE) (*a ); Pixel->rgbGreen = (BYTE) (*a ); Pixel->rgbRed = (BYTE) (*a ); //Byte 1 個位元組 0 到 255 } } Form1->Image1->Invalidate(); } count ; return 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::btDriverConnectClick(TObject *Sender) { if(btDriverConnect->Caption == "裝置連結" ) // 此時尚未連結 { capDriverConnect(hWndC,cbDriverList->ItemIndex); capCaptureGetSetup(hWndC,&cap_setup,sizeof(cap_setup)); cap_setup.fYield = true; cap_setup.dwRequestMicroSecPerFrame = 66667; capFileSetCaptureFile(hWndC,"Capture.avi"); btDriverConnect->Caption="中斷連結"; capOverlay(hWndC,true); btPreview->Enabled = true; } else // 此時已經連結 { capCaptureStop(hWndC); capPreview(hWndC,false); capDriverDisconnect(hWndC); btDriverConnect->Caption= "裝置連結"; btPreview->Enabled = false; } } //--------------------------------------------------------------------------- void __fastcall TForm1::btPreviewClick(TObject *Sender) { capPreviewRate(hWndC,10); capPreview(hWndC,true); capSetCallbackOnFrame(hWndC,fpVideoCallback capGrabFrameNoStop(hWndC} 不知為何..image無法正確ㄉ取出影像..但是panel可以.... 我ㄉ連結事Microsoft WDM Image Capture (Win32) 不知道跟這有關ㄇ 哪位大大可以解答我ㄉ疑惑... 我可以傳原始檔給你
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-03 10:03:04 IP:211.74.xxx.xxx 未訂閱
您好! 請問您是要抓取ccd之後,顯示在image上嗎?是的話請參考: http://delphi.ktop.com.tw/topic.php?topic_id=46092 http://delphi.ktop.com.tw/topic.php?topic_id=46433 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34085 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=54562 發表人 - cashyy 於 2005/07/03 10:07:55 發表人 - cashyy 於 2005/07/03 10:15:44
kmesnblack
一般會員


發表:3
回覆:3
積分:1
註冊:2005-07-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-03 13:08:45 IP:220.139.xxx.xxx 未訂閱
那請問大大... 有辦法直接從panel上面取出RGB... 把整各畫面存成一各2維陣列的RGBㄇ
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-04 00:35:22 IP:218.168.xxx.xxx 未訂閱
您好:    PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 >
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-04 10:56:38 IP:59.104.xxx.xxx 未訂閱
引言: 那請問大大... 有辦法直接從panel上面取出RGB... 把整各畫面存成一各2維陣列的RGBㄇ
您好! 請在搜尋中輸入:rgb關鍵字就可以找到相關的文章了! 如: http://delphi.ktop.com.tw/topic.php?topic_id=71904 http://delphi.ktop.com.tw/topic.php?topic_id=68527
myli1017
一般會員


發表:6
回覆:5
積分:2
註冊:2005-11-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-15 12:59:12 IP:210.202.xxx.xxx 未訂閱
請問:我也是跟一樓的程是一樣,不過我的錯誤地方如下     
 
       Pixel->rgbBlue = (BYTE)  (*a++);
       Pixel->rgbGreen = (BYTE) (*a++);
       Pixel->rgbRed = (BYTE)   (*a++);
 
訊息如下
kmesnblack
一般會員


發表:3
回覆:3
積分:1
註冊:2005-07-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-17 22:32:00 IP:220.139.xxx.xxx 未訂閱
引言: 請問:我也是跟一樓的程是一樣,不過我的錯誤地方如下
 
       Pixel->rgbBlue = (BYTE)  (*a++);
       Pixel->rgbGreen = (BYTE) (*a++);
       Pixel->rgbRed = (BYTE)   (*a++);
 
訊息如下 你這個問題因該是你影像格式沒設...所以產生的問題~~ 所以條一下因該就okㄌ
myli1017
一般會員


發表:6
回覆:5
積分:2
註冊:2005-11-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-11-18 09:54:18 IP:211.20.xxx.xxx 未訂閱
請問: 去那裡設定呢,我沒設定過 煩請描述一下,謝謝
chilly0783
一般會員


發表:10
回覆:6
積分:8
註冊:2005-09-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-11-20 11:48:37 IP:59.113.xxx.xxx 未訂閱
引言: 請問: 去那裡設定呢,我沒設定過 煩請描述一下,謝謝
picc->PixelFormat = pf24bit;    
系統時間:2024-05-12 14:58:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!