티스토리 뷰

[LabVIEW] 비전으로 수집한 카메라 영상 프로그래적으로 이동하기



VAS(Vision Acquisition Software)를 설치하여 Grab 함수를 이용하여 USB 카메라를 통해서 이미지를 수집할 수 있습니다. 아래는 이미지를 수집한 결과입니다. 



수집한 결과 이미지를 아래의 그림처럼 확대/축소를 통해 이미지를 크게 볼 수 있습니다. 확대를 하게 되면 아래의 그림 처럼 그림을 확대하여 볼 수 있습니다. 확대를 하게 되면 아래의 그림처럼 Image 인디케이터에 확대된 결과를 볼 수 있습니다. 확대가 되게 되면 아래의 그림 처럼 인디게이터의 오른쪽과 하단에 위치를 결정할 수 있는 스크롤바가 생깁니다. 


오늘의 글은 이러한 스크롤바를 프로그램적으로 처리할 수 있는 방법을 확인해보도록 하겠습니다.



스크로바를 프로그램적으로 처리하기 위해서는, Image Center Position이라는 프로퍼티 노드를 사용해야 합니다. 이 프로퍼티 노드를 생성하기 위해서는 Image 인디게이터에서 오른쪽 마우스 버튼을 눌러 아래의 그림과 같은 경로를 따라가시면 만들 수 있습니다. 



위와 같은 방법으로 프로퍼티 노드를 만들어서 쓰기로 변경을 하시고, 아래와 같이 구현을 하게 된다면 프로그램 상에서 값을 변경하여 스크롤 바의 위치를 옮길 수 있습니다. 




아래의 그림은 프로그램을 완료하고 실행한 결과입니다. X,Y의 값을 변경하면 스크롤바의 위치가 변경이 됩니다. 여기서 주의해야 할 점은 X, Y의 Position 위치는 이미지의 확대/축소 비율이 어떻든 간에 기존의 이미지 사이즈(아래의 경우 1280*720)의 포지션 값을 지정해야 한다는 점입니다. 확대가 2배가 된경우 2569 * 1440에 대한 값으로 지정을 하는 경우가 많은데, 비율이 어떻든 간 기존의 이미지 크기에 대해서 값을 정하셔야 합니다. 



기존의 이미지 크기를 프로그램 적으로 알기 위해서는 IMAQ GetImageSize.vi를 이용하시면 됩니다. 이 VI를 이용하면 X, Y의 값을 확인할 수 있으며 이를 바탕으로 X, Y의 Position을 지정할 수 있습니다. 이 VI를 추가하여 관련 내용에 대한 인디케이터를 만들게 되면 아래와 같은 그림으로 확인이 가능합니다.




위에서 테스트 진행했던 코드는 아래와 같이 구성이 됩니다. 

이 글이 도움이 되셨나요?

그렇다면 아래의 그림을 클릭해주세요.


댓글