OpencvSharp 에서 쓰는 CompareHist 함수이다.


Cv2.ComapreHist() 로 쓰면 되는 메서드인데 참고하기 위한 중간소스를 올려놓겠다.



Opencv는 맨 마지막 파라미터에 4개의 숫자(0~3)까지가 들어가지만, 오픈씨샵에서는 아래와 같이 제공한다. Opencv는 4개의 비교알고리즘만 제공하는걸로 알고있다.


오픈씨샵 HistCompMethods 의 종류


어떻게 비교할껀지 파라미터를 집어넣어서 사용하면 된다. 적절한 비교 알고리즘을 사용하면 될 것 같다.


아래 표를 가져온 사이트는 메뉴얼 사이트 같은데 참고하라고 올려놓겠다.


http://shimat.github.io/opencvsharp/html/ece6d86a-d3ab-a066-0839-0d1f021ad62c.htm




OpencvSharp 으로 히스토그램을 뽑아야하는데 아무리 뒤져도 Cv2로 되어있는 히스토그램 만들기를 찾을 수 없었다.. 열심히 삽질 후에야 드디어 만들었는데, 나같은 사람이 없길 바라며 나의 소스 일부를 공개하겠다.


아무도 오픈씨샵을 사용하지 않나보다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ



Cv2.CalcHist 를 사용하는 분들과 Cv2.Noramlize를 사용하시는분들은 참고하시길 바래여!


저는 이 사이트에서 메뉴얼 일일히 찾아보고 만들었으니 이와 다른 메뉴얼을 좀 더 참고하고 싶으신 분은 아래 사이트를 이용하시면 됩니다.


OpencvSharp Standard Library 같음


http://shimat.github.io/opencvsharp/html/1bb515b3-6278-49e4-9a33-1054bd279323.htm



여담인데 하............저 맨앞 new Mat[]{hsv_base} 부분을 찾는데 너무 힘들었다. 씨쁠에서는 &Mat를 사용하는데 씨샵에서는 어떻게 해야되는지 몰라서 아..안되나 하고 포기할쯤 검색 미리보기에 저 형식이 있길래 써먹어봤더니 된다.............ㅎ ㅏ...........저같은 삽질하지 마세오........


OpencvSharp CalcHist 를 만드려는 사람에게 도움이 되었음 좋겠습니다!! 


캡스톤 프로젝트를 하는데 자꾸 Mat 형식에는 null을 사용하면 에러가 난다고 한 디버깅 메세지로 이 문제를 고민하게 되었다.


아니......... null로 할당을 안해주면 할당하지 않은 값이라고 빨간줄나고 어쩌라는건지 ㅠㅠ

그래서 열심히 고민하다가 new로 할당한번 해보니 해결되는 기적을 보아따!


Mat src = new Mat(); 로 생성해주면 더이상 오류나지 않는다!


그러므로 빈 Mat 형식을 만들어놔야 할 경우 new로 할당받아놓아야 한다.



이런식으로 !!



사진과 같이 Cv2.ImRead 를 이용하여 이미지를 불러오며


OpencvSharp 안에 있는 BitmapConverter를 이용하여 Mat 형식을 Bitmap으로 변경한다.


Mat to Bitmap

매트형식을 비트맵으로 변경하기


RGB 를 HSV로 바꾸는 방법


나는 opencvsharp을 이용했고 C#에서 사용했다.


Cv2.CvtColor(src_base,hsv_base,ColorConversionCodes.RGB2HSV);


로 사용하면 된다. 


참고사이트 : http://shimat.github.io/opencvsharp/html/83c0eb24-b0ca-9b3a-2f19-82b28ad9ec6d.htm

+ Recent posts