오늘의 사건사고
분류 전체보기
(475)
세상살이
(149)
배두나
(4)
주절주절
(67)
지름
(59)
생각
(38)
정보
(58)
과제
(9)
영화상영정보
(2)
영화
(26)
일본영화
(22)
영화관 기행
(1)
음악
(21)
ACM
(9)
Image Processing
(6)
홈
태그
미디어로그
위치로그
방명록
RyuiSaka
검색을 통해 들어오신 분들께 드리는 말씀
Wish List
Kay's story
하고 싶은 말은 하는 블로그
J's
개밥세상
잭크와 콩나무
ZeroWiki
어른이 되가는 소녀.
두나넷
Silver Rain
kaori 日和
우물안 이무기
COM's Project
새롭게 태어나다
☆DreamChaser★
World of EmulBoy
IT's Lives.
eMTi.net Blog
ㅈ융. Mint Chocolate_Colored
Welcome To Hong Bakery!!
양을 찾아 떠나는 모험
원념의 귀곡성
돌아오지 않는 숲
자민의 새벽안개
/
/
색공간
[OpenCV] 각 Color Space(색 공간) 별 채널 분리하기
2008.11.09
4
[OpenCV] 각 Color Space(색 공간) 별 채널 분리하기
2008. 11. 9. 05:22
선배들이 쉽다고 하는게 이해가 안갔는데, 막상 만들어놓고 보니 쉽긴 쉽다.
다만, 각 Color Space 별 특징이나 다른점 등을 이해하는게 어려운 듯.
역시나 이번껏도 막상 만들어놓고 제대로 만든건지 의문이다...
책 주문해놨으니, 오면 좀 제대로 봐야지...-_-;;
- 프로그램 작동 동영상
- 소스코드
/* * main.cpp * OpenCV Application * * Created by RyuiSaka on 08. 11. 09. * Copyright 2008 Kwangwoon University. All rights reserved. * */ #include
int main(int argc, char **argv) { IplImage* sourceImage = cvLoadImage("./test.jpg", CV_LOAD_IMAGE_COLOR); IplImage* convertedImage = cvCreateImage(cvGetSize(sourceImage), IPL_DEPTH_8U, 3); IplImage* outputImage1 = cvCreateImage(cvGetSize(sourceImage), IPL_DEPTH_8U, 1); IplImage* outputImage2 = cvCreateImage(cvGetSize(sourceImage), IPL_DEPTH_8U, 1); IplImage* outputImage3 = cvCreateImage(cvGetSize(sourceImage), IPL_DEPTH_8U, 1); char* sourceImageWindow = "Source Image Window"; char* outputWindowCh1 = "Output Image Window - Ch 1"; char* outputWindowCh2 = "Output Image Window - Ch 2"; char* outputWindowCh3 = "Output Image Window - Ch 3"; int key; cvNamedWindow(sourceImageWindow, CV_WINDOW_AUTOSIZE); cvShowImage(sourceImageWindow, sourceImage); while(1) { key = cvWaitKey(0); if(key == '0') break; switch (key) { case '1': cvSplit(sourceImage, outputImage1, outputImage2, outputImage3, NULL); cvNamedWindow(outputWindowCh1, CV_WINDOW_AUTOSIZE); cvShowImage(outputWindowCh1, outputImage1); cvNamedWindow(outputWindowCh2, CV_WINDOW_AUTOSIZE); cvShowImage(outputWindowCh2, outputImage2); cvNamedWindow(outputWindowCh3, CV_WINDOW_AUTOSIZE); cvShowImage(outputWindowCh3, outputImage3); break; case '2': cvCvtColor(sourceImage, convertedImage, CV_BGR2YCrCb); cvSplit(convertedImage, outputImage1, outputImage2, outputImage3, NULL); cvShowImage(outputWindowCh1, outputImage1); cvShowImage(outputWindowCh2, outputImage2); cvShowImage(outputWindowCh3, outputImage3); break; case '3': cvCvtColor(sourceImage, convertedImage, CV_BGR2HSV); cvSplit(convertedImage, outputImage1, outputImage2, outputImage3, NULL); cvShowImage(outputWindowCh1, outputImage1); cvShowImage(outputWindowCh2, outputImage2); cvShowImage(outputWindowCh3, outputImage3); break; case '4': cvCvtColor(sourceImage, convertedImage, CV_BGR2HLS); cvSplit(convertedImage, outputImage1, outputImage2, outputImage3, NULL); cvShowImage(outputWindowCh1, outputImage1); cvShowImage(outputWindowCh2, outputImage2); cvShowImage(outputWindowCh3, outputImage3); break; case '5': cvCvtColor(sourceImage, convertedImage, CV_BGR2XYZ); cvSplit(convertedImage, outputImage1, outputImage2, outputImage3, NULL); cvShowImage(outputWindowCh1, outputImage1); cvShowImage(outputWindowCh2, outputImage2); cvShowImage(outputWindowCh3, outputImage3); break; case '6': cvCvtColor(sourceImage, convertedImage, CV_BGR2Lab); cvSplit(convertedImage, outputImage1, outputImage2, outputImage3, NULL); cvShowImage(outputWindowCh1, outputImage1); cvShowImage(outputWindowCh2, outputImage2); cvShowImage(outputWindowCh3, outputImage3); break; case '7': cvCvtColor(sourceImage, convertedImage, CV_BGR2Luv); cvSplit(convertedImage, outputImage1, outputImage2, outputImage3, NULL); cvShowImage(outputWindowCh1, outputImage1); cvShowImage(outputWindowCh2, outputImage2); cvShowImage(outputWindowCh3, outputImage3); break; default: break; } } return 0; }
공유하기
게시글 관리
오늘의 사건사고
저작자표시
비영리
변경금지
PREV
1
NEXT
+ Recent posts
Powered by
Tistory
, Designed by
wallel
Rss Feed
and
Twitter
,
Facebook
,
Youtube
,
Google+
티스토리툴바