오늘의 사건사고
분류 전체보기
(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] 테스트코드
2008.11.04
2
[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; }
공유하기
게시글 관리
오늘의 사건사고
저작자표시
비영리
변경금지
[OpenCV] 테스트코드
2008. 11. 4. 03:26
아직 OpenCV라는 Library에 대해 제대로 이해하고 있지 않기도 하고, 참고할만한 Reference를 찾아보지 않고 무작정 다뤄보는거라 어렵다.
게다가 C, C++을 다 잊어버린 상태라...-_-;
일단 선배들이 올려준 자료들을 보며 Assignment들을 해보고 있긴 한데...이벤트처리가 아직 미숙한 관계로 첫번째 Assignment의 절반만 해봤다.(참고로 아래 이미지는 그냥 작업하던 회사 컴퓨터에 있던 앨범아트를 쓴 것 뿐이다...-_-)
Test.zip
Xcode용 프로젝트 파일(소스코드 포함)
아래 코드는 특정 이미지를 불러와서 해당 이미지에 마우스 왼쪽버든을 클릭하는 이벤트가 발생 했을 때, 해당 위치에 "TEST"라는 텍스트가 출력되는 프로그램.
아주아주 매우매우 간단하지만...이 코드를 작성하는데도 시간이 좀 걸렸다...ㅠ_ㅠ
그래도 결과가 눈에 바로바로 보이니까 재미있다. :)
앞으로 열심히 해봐야지~!
/* * main.cpp * OpenCVApp * * Created by Seongwoo Lee on 11/03/08. * Copyright 2008 RyuiSaka. All rights reserved. * */ #include
void cropWindow(int event, int x, int y, int flags, void* img); bool flag = FALSE; int main(int argc, char **argv) { IplImage* testImage = cvLoadImage("./test.jpg", CV_LOAD_IMAGE_COLOR); char *window1 = "Test Window"; cvNamedWindow(window1, CV_WINDOW_AUTOSIZE); cvShowImage(window1, testImage); cvSetMouseCallback(window1, cropWindow, testImage); cvWaitKey(0); cvReleaseImage(&testImage); return 0 ; } void cropWindow(int event, int x, int y, int flags, void* testImage) { CvFont font; double hScale = 0.5; double vScale = 0.5; int lineWidth = 1; cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, hScale, vScale, 0, lineWidth); if(event == CV_EVENT_LBUTTONDOWN && flag == FALSE) { cvPutText(testImage, "TEST", cvPoint(x, y), &font, cvScalar(255, 255, 255)); cvShowImage("Test Window", testImage); } }
공유하기
게시글 관리
오늘의 사건사고
저작자표시
비영리
변경금지
PREV
1
NEXT
+ Recent posts
Powered by
Tistory
, Designed by
wallel
Rss Feed
and
Twitter
,
Facebook
,
Youtube
,
Google+
티스토리툴바