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
댓글 달기