|
우선 답변 감사합니다.
지금은 Cognex 비젼을 사용하는데 너무 어려운 점이 많아서
Cognex를 사용한 비젼 개발은 중지하였습니다.
*^^*
온리 님이 쓰신 글 :
: 이길남.HoPe 님이 쓰신 글 :
: : 안녕하세요.
: :
: : 다름이 아니오라 이번에 Cognex 비젼 라이브러리를 사용해보려고 하는데...
: :
: : OCX를 등록시켜도 컴포넌트가 생성되지 않습니다.. 흑흑...
: :
: : 제공해준 샘플 파일은 주로 비주얼 베이직으로 맹거져 있습니다.
: :
: : 비주얼 C++로 작성된 것이 몇개 있어서 확인해 보니,
: :
: : 화면에서 Import Library를 해서 바로 화면에 등록을 시켰더군요....
: :
: : 혹시 Cognex 비젼 라이브러리를 사용해 보신 고수님들 계시면
: :
: : 빌더나 델파이로 사용가능한지 문의 드립니다.
: :
: : 추운 겨울 감기 조심하십시요. ㅠ.ㅠ
:
: //////////////////////////////////////////////////////////////////////////////////////
:
: 처음 쓰는 답변이라 허름합니다.
:
: OCX 파일은 사용이 되지 않고요 TypeLibaray형태로 된 파일만 Import Libray 추가합니다.
: 예를 들면 TypeLibray형태로 된 CogBlobTypeLibrary 리스트를 추가하면
: ActiveX Tab에 CogBlob, CogBolbTool 같은 컴포넌트가 생성됩니다.
: OCX 파일은 Import Libray를 잘못시키고 rgr32svr로 강제로 등록시키면 VisionPro를 재 설치해야 합니다.
: 주의하세요... 제가 확인한 바로는 DisplayCtrl.ocx는 직접 등록해서 사용해도 이상이 없었습니다.
:
: 아래의 코드는 임의의 경로 이미지를 로드하여서 Blob으로 원형태를 찾는 코드입니다.
: 이미지파일에서는 8bit DIB 이미지만 로드 가능합니다.
:
: AnsiString sTmp = "";
: sTmp ="C:\\image5.bmp";
:
: // Cogneximagefile_tlb::CogImageFileModeConstants iMode;
:
: CogImageFileTool1->Operator->Open(WideString(sTmp.c_str()),cogImageFileModeRead);
: // iMode = CogImageFileTool1->Operator->get_OpenMode();
: CogImageFileTool1->Run();
: CogDisplay1->Image = CogImageFileTool1->OutputImage;
: CogDisplay1->Refresh();
:
: CogBlobTool1->InputImage = CogImageFileTool1->OutputImage;
: CogBlobTool1->Run();
:
: // 해당 영역에 표시하는 내용과 Blob의 넓이와 X,Y 좌표 확인하는 방법....
: for( int i=0; i < CogBlobTool1->Results->get_Blobs(true)->Count; i++)
: {
: if( ( CogBlobTool1->Results->get_Blobs(true)->get_Item(i)->Acircularity > 0.9 ) &&
: ( CogBlobTool1->Results->get_Blobs(true)->get_Item(i)->Acircularity < 1.1 ) )
: {
: sTmp.sprintf("%d",i);
: CogDisplay1->StaticGraphics->Add(CogBlobTool1->Results->get_Blobs(true)->get_Item(i)->
: CreateResultGraphics(cogBlobResultGraphicBoundary),WideString(sTmp.c_str()));
: sTmp.sprintf("X : %02lf, Y : %02lf, Area : %02lf", CogBlobTool1->Results->get_Blobs(true)->get_Item(i)
: ->CenterOfMassX,CogBlobTool1->Results->get_Blobs(true)->get_Item(i)->CenterOfMassY,
: CogBlobTool1->Results->get_Blobs(true)->get_Item(i)->Area );
: ShowMessage(sTmp.c_str());
: }
: }
:
: 저도 하느라 고생을 해서 도움이 되었으면 합니다. 컴파일하는 도중에 RichEdit같은 컴포넌트를 사용하면
: 경우에 Byte가 충돌이 나더군요. 전 그냥 관련된것은 사용하지 않아서 주석처리후 사용했습니다.
|