NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

急!請教在VC++下使用golden template學習函數出錯的解決辦法

在VC++6下使用NI Vision model 8.5
 
 // 下面这段代码是从剪贴板获取图像
// SaveObject2Bitmap(m_ImageMinuend, bmTemplate);
//  CopyBitmapToClipboard(NULL, bmTemplate, NULL);
  imaqClipboardToImage(imTemplate, NULL);
 // Pattern Match: Learning
 success = imaqLearnPattern(imTemplate, IMAQ_LEARN_ALL);
    if (!success)
 {
        char* err = imaqGetErrorText(imaqGetLastError());
        ::MessageBox(NULL, err, "Error Learning Pattern", MB_OK|MB_ICONERROR);
        imaqDispose(err);
  goto FailMatch;
    }
 // 下面这段代码是从剪贴板获取图像
// SaveObject2Bitmap(m_ImageMinuend, bmSearch);
// CopyBitmapToClipboard(NULL, bmSearch, NULL);
 imaqClipboardToImage(imSearch, NULL);
 
 // Golden Template: Learning
 success = imaqLearnGoldenTemplate(imTemplate, IMAQ_NO_OFFSET, NULL); // 出错处
                   // 通常报错:Invalid image border.
 
请教imaqLearnGoldenTemplate函数使用方法是否得当?急盼答复,多谢!
 
0 積分
1 條訊息(共 5 條)
5,274 檢視
Hello Denfo,
 
     我使用你的程式碼並不會有錯誤,不曉得你是否使用8-bit的影像檔案?
  
     另外一個快速解決這個問題的方法是使用Vision Assistant
     在Vision Assistant中可以使用Golden Tempelate Comparision
     然後將其轉成C code,就可以在Visual C++下使用
     附檔為Vision Assistant的使用方法及我這邊轉出來的範例程式碼
 
     Alexander Chen
     Applications Engineer,
     National Instruments Taiwan
下載全部
0 積分
2 條訊息(共 5 條)
5,253 檢視

Hello Alexander Chen,

我的目的是使用imaqLearnGoldenTemplate函數在程式中自動創建golden template.而由vision assistant采用的是從文件中加載的方法:

    VisionErrChk(goldenTemplate = imaqCreateImage(IMAQ_IMAGE_U8, 7));
    VisionErrChk(imaqReadVisionFile(goldenTemplate, templatePath, NULL, NULL));

另外,您提到使用我的程式代碼并未出錯,請問能否提供一份無錯的使用imaqLearnGoldenTemplate之vc++程式供我參考?不勝感激!

 // 下面这段代码是从剪贴板获取图像
// SaveObject2Bitmap(m_ImageMinuend, bmSearch);
// CopyBitmapToClipboard(NULL, bmSearch, NULL);
 imaqClipboardToImage(imSearch, NULL);
 
 // Golden Template: Learning
 success = imaqLearnGoldenTemplate(imTemplate, IMAQ_NO_OFFSET, NULL); // 出错处
                   // 通常报错:Invalid image border.

Denfo
Email:denfo@163.com

0 積分
3 條訊息(共 5 條)
5,236 檢視
Plz email your support to support.china@ni.com
 
Thanks
 
NI Taiwan AEs
0 積分
4 條訊息(共 5 條)
5,221 檢視
Hello Denfo,
 
    雖然我附的範例程式是開啟影像檔
    但是ㄧ樣可以修改成讀取clipboard中的影像
    下面是我修改的程式碼
 
    VisionErrChk(goldenTemplate = imaqCreateImage(IMAQ_IMAGE_U8, 7));
    //VisionErrChk(imaqReadVisionFile(goldenTemplate, templatePath, NULL, NULL));
    VisionErrChk(imaqClipboardToImage(goldenTemplate, NULL));
    VisionErrChk(imaqLearnGoldenTemplate(goldenTemplate, IMAQ_NO_OFFSET, NULL));
 
 
   Alexander Chen, Applications Engineer
   National Instruments Taiwan
0 積分
5 條訊息(共 5 條)
5,210 檢視