간만에 반가운 소식을 전합니다. Visual Studio 2017에서 공식 지원하지 않았던 Image Watch가 이제 공식적으로 지원됩니다. Image Watch는 OpenCV 라이브러리의 Mat 객체를 영상의 형태로 보여주는 디버깅 툴인데요, Visual Studio 2015까지만 공식지원하고 Visual Studio 2017에는 설치를 할 수 없었습니다.  이때문에 Visual Studio 2017 대신 2015 버전을 계속 사용한다는 OpenCV 개발자들도 있었는데요, 다행히 오늘 Visual Studio 2017을 최신 버전으로 업데이트를 하고 나니 "Image Watch 2017"이라는 새로운 이름으로 확장 프로그램을 설치할 수 있었습니다. Image Watch 2017에 대한 자세한 설명은 아래 링크를 참고하세요.

https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.ImageWatch2017


그럼 이제부터 Visual Studio 2017에 Image Watch 2017을 설치하는 방법을 자세히 설명하겠습니다. 먼저 Visual Studio 2017을 최신 버전으로 업데이트를 합니다. 2017년 12월 6일 현재, 최신 버전은 15.5.0 입니다. 저도 방금 전에 업데이트 알림이 떠서 업데이트했습니다. Visual Studio를 15.5.0 버전으로 업데이트하지 않으면 Image Watch 2017을 설치하지 못할 수도 있으니 꼭 업데이트를 하세요. 참고로 15.5.0 업데이트에서 변경된 사항은 아래 링크에 나와 있습니다. (Visual C++ 항목에서는 그다지 눈에 띠는 내용은 없는 것 같네요.)

https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes#15.5.0


자, 그럼 최신 버전의 Visual Studio를 사용하고 있다고 가정하구요, Image Watch 2017을 설치하는 방법을 설명하겠습니다. 일단 Visual Studio를 실행하시구요, 메뉴에서 [도구] -> [확장 및 업데이트]를 선택하세요. 그러면 "확장 및 업데이트" 창이 새로 뜨는데요, 여기서 왼쪽 항목 중에서 [온라인] 항목을 선택하고, 오른쪽 상단의 검색창에 "Image Watch"라고 입력하세요. (Image와 Watch 사이에 빈 칸이 있어야 합니다.) 그러면 아래 그림처럼 "Image Watch 2017" 항목을 찾을 수 있을 겁니다. 이 항목을 선택한 후 [다운로드] 버튼을 클릭하세요. 간혹 "Image Watch"라고 입력을 했는데도 아래처럼 "Image Watch 2017" 항목이 나타나지 않으면 검색어를 "opencv"라고 입력하셔도 됩니다.



[다운로드] 버튼을 클릭했으면 일단 Visual Studio를 완전히 종료하세요. 그러면 아래와 같은 창이 나타납니다. 여기서 [수정] 버튼을 클릭하면 본격적인 Image Watch 2017 설치가 시작됩니다.



약간의 시간이 흐른 뒤 설치가 완료되면 아래 창이 나타납니다.



잘 설치가 된 것 같죠? 이제 실제로 Image Watch 2017을 사용해보도록 하겠습니다. Visual Studio 2017을 실행하고, 간단한 OpenCV 예제 프로그램을 작성합니다. 아래 그림에 나타난 HelloCV 예제 프로젝트는 제가 패스트캠퍼스에서 "OpenCV와 함께하는 컴퓨터 비전 프로그래밍" 캠프에서 가장 먼저 설명하는 예제 프로그램입니다. 레나 영상을 그레이스케일 형태로 불러와서 영상의 반전을 수행하는 코드입니다.



Image Watch 2017을 사용하려면 Debug 모드로 프로젝트를 빌드해야하고, 원하는 코드 라인에 중단점(breakpoint)를 지정한 후 [디버그] -> [디버깅 시작]을 수행해야 합니다. 위 그림에서는 imshow 코드를 수행하기 전에 중단점이 걸려있습니다. 이렇게 프로그램이 중단점에 의해 멈쳐 있을 때, Visual Studio 메뉴에서 [보기] -> [다른 창] -> [Image Watch] 메뉴를 선택하면 그림 오른쪽에 보이는 Image Watch 창이 나타납니다. 그리고 Image Watch 창에 나열된 Mat 클래스 타입의 변수를 선택하면 해당 변수에 저장된 영상을 (픽셀 값 숫자의 나열이 아닌) 말 그대로 영상 형태로 볼 수 있습니다. 편리하죠?? :-)



Posted by kkokkal
: