RGB -> HSV 컬러모델 변환 오류입니다.
글쓴이: ozon1000 / 작성시간: 목, 2015/12/03 - 1:19오후
using namespace std; struct hsv { unsigned char h; unsigned char s; unsigned char v; }; int main() { CvCapture *capture = cvCaptureFromCAM(0); IplImage *image = cvQueryFrame(capture); IplImage *A = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 3); IplImage *HSV = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 3); hsv HSV_COLOR; unsigned char r = 0, g = 0, b = 0; unsigned char y = 0, cb = 0, cr = 0; int i, j, sum = 0, avgX = 0, count = 1; int index; while(capture) { sum = 0; count = 1; image = cvQueryFrame(capture); IplImage *A = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 3); IplImage *HSV = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 3); cvCvtColor(image, HSV, CV_BGR2HSV); for (i = 0; i < HSV->height; i++) { for (j = 0; j < HSV->width; j++) { index = i * HSV->widthStep + j; HSV_COLOR.h = (unsigned char)HSV->imageData[index * 3 + 0]; HSV_COLOR.s = (unsigned char)HSV->imageData[index * 3 + 1]; HSV_COLOR.v = (unsigned char)HSV->imageData[index * 3 + 2]; cout << (int)HSV_COLOR.h << " " << (int)HSV_COLOR.s << " " << (int)HSV_COLOR.v << endl; } } //cvShowImage("Original",image); //cvShowImage("two",HSV); if(cvWaitKey(33) >= 27) break; }
기존의 웹캠에서 받아온 rgb영상을 함수를 통해 HSV모델로 받아오고 거기서 각각의 H, S, V 값을 추출하고자 하는 내용입니다.
실행을하면 런타임오류(아마도 out of range)인거 같은데.. 정상적인 코딩같은데 왜 이렇게 되는지 모르겠습니다. 부탁드립니다.
Forums:
픽셀 사용하는 예제 하나가 보이네요.
cvGetSize
http://search.naver.com/search.naver?ie=utf8&sm=stp_hty&where=se&query=cvGetSize
[OpenCV]영상에서 픽셀값 접근
http://blog.naver.com/chrhdhkd/220503558162
OpenCV imread 이미지 로딩불가 문제
http://zeed.egloos.com/2195843
OpenCV코리아 - 강좌. 커뮤니티 (여기서 HSV 왼쪽에서 검색 하면 여러가지 나옵니다.)
http://cafe.naver.com/opencv
컴퓨터 비전 실무 프로그래밍 오픈소스 OPENCV를 이용한 - 네이버 책에서 OpenCV HSV 로 검색
http://book.naver.com/bookdb/book_detail.nhn?bid=2886060
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기