DALSA线阵CCD相机开发 之 opencv读取图片
SDK的下載
Sapera_LT_8.31_SDK 百度網盤下載地址:鏈接:密碼:ckm7。
SDK的安裝
解壓運行.exe文件,按照提示確定,下一步即可。
幫助文檔和demo
如果要獲得完整的幫助文檔和demo,在SDK安裝時選擇full安裝,路徑可以自己選擇,默認路徑為 C:\Program Files\Teledyne DALSA\。
主要demo簡介
在C:\Program Files\Teledyne DALSA\Sapera\Demos\Classes\VC中提供了多個開發Demo供用戶參考。
Grab Demo (Dialog Box Interface 對話框)
路徑:\Sapera\Demos\Classes\Vc\GrabDemo\Release\GrabDemo.exe
功能:
1.顯示了基本的采集功能
2.允許獲得連續或單幀圖像
3.同時調整采集參數
Grab Demo (Single Document Interface 單文檔)
路徑:\Sapera\Demos\Classes\Vc\GrabDemo\Release\GrabDemoSDI.exe
功能:
1.顯示了基本的采集功能
2.允許獲得連續或單幀圖像
3.同時調整采集參數
Sequential Grab Demo
路徑:\Sapera\Demos\Classes\Vc\SeqGrabDemo\Release\SeqGrabDemo.exe
功能:
1.采集序列圖像至內存而后顯示
2.程序允許錄制多段視頻
3.并可存儲、導入AVI文件
4.每一圖像存儲于不同buffer中
5.可通過對話框設置buffer大小等參數
Bayer Demo
路徑:\Sapera\Demos\Classes\Vc\BayerDemo\Release\BayerDemo.exe
功能:
1.顯示Bayer 轉換功能
2.進行Bayer轉換參數設置
Flat-field Demo
路徑:\Sapera\Demos\Classes\Vc\FlatFieldDemo\Release\FlatFieldDemo.exe
功能:
1.顯示平場校正功能
2.平場校正Flat FieldCorrection (FFC) 包括調整模式噪聲FixedPattern Noise (FPN),像素置換 Pixel Replacement, Photo Response Non Uniformity (PRNU), 和斑點校正 Shading Correction.
I/O Demo
路徑:\Sapera\Demos\Classes\Vc\IODemo\Release\IODemo.exe
功能:
1顯示一般I/O設備的使用
2.允許監視當前輸入輸出狀態
3.改變高低極性狀態;允許監視輸入中斷并記錄中斷數
GigE-Vision Camera Demo
路徑:\Sapera\Demos\Classes\Vc\GigeCameraDemo\Release\GigeCameraDemo.exe
功能:怎樣使用DALSAGigE Vision? 相機獲得圖像. 可導入相機配置文件
使用opencv讀取圖片
以 GigeCameraDemo 為例,找到 XferCallback 函數,修改代碼如下:
void CGigeCameraDemoDlg::XferCallback(SapXferCallbackInfo *pInfo)
{
?? ?CGigeCameraDemoDlg *pDlg= (CGigeCameraDemoDlg *) pInfo->GetContext();
? ?// If grabbing in trash buffer, do not display the image, update the
? ?// appropriate number of frames on the status bar instead
? ?if (pInfo->IsTrash())
? ?{
? ? ? CString str;
? ? ? str.Format(_T("Frames acquired in trash buffer: %d"), pInfo->GetEventCount());
? ? ? pDlg->m_statusWnd.SetWindowText(str);
? ?}
? ?// Refresh view
? ?else
? ?{
?? ? ? BYTE pData;
?? ? ? void* pDataAddr = &pData;
?? ? ? BOOL success = pDlg->m_Buffers->GetAddress(static_count, &pDataAddr);
?? ? ? int width = pDlg->m_Buffers->GetWidth();
?? ? ? int height = pDlg->m_Buffers->GetHeight();
?? ? ? cv::Mat img = cv::Mat::zeros(cv::Size(width, height), CV_8U);
?? ? ? memcpy(img.data, pDataAddr, width*height);
?? ? ? //Find_and_Draw_LeftLines(img, 10, 150, 5, left_deta_width);
?? ? ? //line(left_pic, cv::Point(left_detect_width, 0), cv::Point(left_detect_width, 32), cv::Scalar(255, 255, 0), 2, 4);
?? ? ? //cv::imshow("image", left_pic);
?? ? ? cv::imshow("image", img);
?? ? ? cv::waitKey(1);
? ?}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
運行代碼即可。
效果圖
運行 GigeCameraDemo 后,產生如下界面。可以選擇Acquisition Server和Acquisition Device,也可以選擇CCF配置文件,默認是初始化的配置。
點擊OK按鈕進入相機的操作界面,點擊Grab進行圖像采集,此處設置了圖片大小為4096*32,使用opencv中imshow函數顯示出來,效果圖如下。
?
總結
以上是生活随笔為你收集整理的DALSA线阵CCD相机开发 之 opencv读取图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv python 图像形态学操
- 下一篇: 工具用的好下班走的早