안녕하세요. 구스입니다. 지난 글을 통해서 NI Vision Assistant Software와 Vision Assistant에 대해서 이야기를 해보았는데요.오늘은 Vision Assistant를 통해서 LabVIEW 코드 개발하는 방법에 대해서 알아볼까 합니다. 물론 LabVIEW 블록다이어그램에서도 Vision Assistant를 열 수 있기 때문에 코드상에서 바로 개발을 해도 무방합니다. 하지만 LabVIEW를 제외한 NI Vision Assistant를 이용하게 되면 LabVIEW나 C, C# 코드로 변환을 해야 하기 때문에 오늘 간략히 알아보는 겁니다. 이전 NI Vision Assistant Software에 대해서 알고 싶다면 아래의 글을 확인하세요. 2016/06/30 - [National..
LabVIEW를 이용하여 Vision 어플리케이션 개발시에 생산자-소비자 패턴을 적용하게 되면 소비자 패턴에서 원활히 데이터를 처리하지 못하여, 생산자와 소비자 간의 루프 동기화가 이루어지지 않게 됩니다. 이러한 문제가 발생하는 이유는 무엇일까요? 이 문제의 원인은 IMAQ 함수 처리 방식 때문입니다. IMAQ 함수에서 사용하는 Image Out 값은 실질적인 이미지의 Byte 값이 들어가 있는 배열 형태가 아니라, 이미지 값을 저장하고 있는 배열의 메모리 위치를 나타냅니다. 따라서 Queue 함수에 전달을 할때 IMAQ 함수에서 생성된 Image Out 값을 넣게 되면 메모리의 위치만을 알려주는 메모리 주소를 전달하게 됨으로써 처리가 원할하지 않게 되는 것입니다. 좀 더 유식하게 이야기 하면 IMAQ ..
[LabVIEW] 비전으로 수집한 카메라 영상 프로그래적으로 이동하기 VAS(Vision Acquisition Software)를 설치하여 Grab 함수를 이용하여 USB 카메라를 통해서 이미지를 수집할 수 있습니다. 아래는 이미지를 수집한 결과입니다. 수집한 결과 이미지를 아래의 그림처럼 확대/축소를 통해 이미지를 크게 볼 수 있습니다. 확대를 하게 되면 아래의 그림 처럼 그림을 확대하여 볼 수 있습니다. 확대를 하게 되면 아래의 그림처럼 Image 인디케이터에 확대된 결과를 볼 수 있습니다. 확대가 되게 되면 아래의 그림 처럼 인디게이터의 오른쪽과 하단에 위치를 결정할 수 있는 스크롤바가 생깁니다. 오늘의 글은 이러한 스크롤바를 프로그램적으로 처리할 수 있는 방법을 확인해보도록 하겠습니다. 스크로바를..
본 글은 C#, C, LabVIEW 기반의 공통된 내용입니다. [IMAQ] 비전 함수 메모리 릭(Memory Leak) 이슈 IMAQ Dispose 함수는 IMAQ 함수들을 이용하여 사용한 이미지 관련 메모리 할당 부분을 해제해주는 기능을 합니다. 해제를 하기 위해서는 IMAQ 생성 및 파일 읽기등을 통해서 가져온 메모리 주소에 대한 정보가 필요합니다. 코드상에서 여러번의 이미지를 생성할 수 있기 때문에 이에 대한 정보는 모두 가지고 있어야 합니다. Dispose 함수의 경우 프로그램 상에서 이미지가 더이상 필요가 없는 경우에만 사용을 하는 것이 좋습니다. 사용이 종료되고 Dispose를 하지 않았을 때는 사용자의 PC 메모리는 점점 늘어나는 것을 확인할 수 있는데 이는 Memory Leak에 대한 이슈..
이전 글을 통해서 이미지 수집에 필요한 카메라의 종류에 대한 설명과 기본적인 카메라 기술에 대해서 설명을 드렸습니다. 이전 글을 확인하고 싶으시면 아래의 링크를 이용해 주시기 바랍니다. 2014/12/27 - [National Instruments/기타..] - 이미지 수집 - 카메라 기술에 대해서2014/12/27 - [National Instruments/기타..] - 이미지 수집 - 카메라의 종류 이 글에서는 머신 비전 시스템 구축에 필요한 하드웨어와 소프트웨어를 위한 드라이버 정보에 대해서 알아보도록 하겠습니다. 이 글은 NI 제품군을 기반으로 설명을 드리겠습니다. 이미지 수집 하드웨어 머신 비전 혹은 과학적 이미지 어플리케이션을 위해서 아래와 같은 하드웨어 요소를 고려해야 합니다. 온보드 메모리..