검색결과 리스트
onMouse에 해당되는 글 2건
- 2013.09.03 컬러 추출후 해당 컬러 보여주기
- 2013.08.20 [콘솔]마우스 이벤트
글
컬러 추출후 해당 컬러 보여주기
void main() {
char * wnSrc = "src";
Mat src = imread("resizesample.tif");
if(!src.data) exit(1);
imshow(wnSrc,src);
cvSetMouseCallback(wnSrc, onMouse, &src);
waitKey(0);
}
//-------------------------------------------------------------
// 마우스 이벤트
//-------------------------------------------------------------
void onMouse(int event, int x, int y, int flags, void* param) {
Scalar rgb;
Mat *src = (Mat *)param;
switch(event) {
case CV_EVENT_RBUTTONDOWN: //오른쪽버튼 DOWN
rgb[0]= src->at<Vec3b>(y,x)[0];
rgb[1]= src->at<Vec3b>(y,x)[1];
rgb[2]= src->at<Vec3b>(y,x)[2];
cout<<"B("<<rgb[0]<<")";
cout<<"G("<<rgb[1]<<")";
cout<<"R("<<rgb[2]<<")"<<endl;
color_extraction(*src,rgb);
break;
}
imshow("src",*src);
}
//-------------------------------------------------------------
// 컬러 추출
//-------------------------------------------------------------
void color_extraction( Mat &src, Scalar rgb ) {
Mat dst, addMat;
unsigned int gap = 5;
Scalar lowerBGR, uperBGR;
lowerBGR[0] = (rgb[0] - gap);
lowerBGR[1] = (rgb[1] - gap);
lowerBGR[2] = (rgb[2] - gap);
uperBGR[0] = (rgb[0] + gap);
uperBGR[1] = (rgb[1] + gap);
uperBGR[2] = (rgb[2] + gap);
inRange(src, lowerBGR, uperBGR, dst);
dilate( dst, dst, Mat() );dilate( dst, dst, Mat() );
erode( dst, dst, Mat() );
cvtColor(dst,dst,CV_GRAY2BGR);
add(src,dst,addMat);
imshow("Add",addMat);
imshow("Color_Detect Demo",dst);
}
'OpenCV > my_source' 카테고리의 다른 글
컬러 추출후 해당 컬러 보여주기2 (0) | 2013.09.03 |
---|---|
[콘솔]마우스 이벤트 (0) | 2013.08.20 |
컬러공간 변환 (0) | 2013.05.21 |
설정
트랙백
댓글
글
[콘솔]마우스 이벤트
#include "colordetecth.h"
void onMouse(int event, int x, int y, int flags, void* param);
void fun(Mat &image, Scalar rgb);
main()
void main() {
char * wnSrc = "src";
Mat src;
src = imread("sample.tif");
//src = imread("ColorCheckerChart.png");
imshow(wnSrc,src);
cvSetMouseCallback(wnSrc, onMouse, &src);
waitKey(0);
}
onMouse()
void onMouse(int event, int x, int y, int flags, void* param) {
Scalar rgb;
Mat *src = (Mat *)param;
switch(event) {
case CV_EVENT_RBUTTONDOWN: //오른쪽버튼 DOWN
rgb[0]= src->at<Vec3b>(y,x)[0];
rgb[1]= src->at<Vec3b>(y,x)[1];
rgb[2]= src->at<Vec3b>(y,x)[2];
cout<<"B("<<rgb[0]<<")";
cout<<"G("<<rgb[1]<<")";
cout<<"R("<<rgb[2]<<")"<<endl;
fun(*src,rgb);
break;
case CV_EVENT_RBUTTONUP: //오른쪽버튼 UP
break;
case CV_EVENT_RBUTTONDBLCLK: //오른쪽버튼 떠블클릭
break;
case CV_EVENT_LBUTTONDOWN: //왼쪽버튼 DOWN
break;
case CV_EVENT_LBUTTONUP: //외쪽버튼 UP
break;
case CV_EVENT_LBUTTONDBLCLK: //외쪽버튼 더블클릭
break;
case CV_EVENT_MOUSEMOVE: //마우스움직임
if(flags & CV_EVENT_FLAG_RBUTTON){
//printf("현재 마우스 좌표는 (%d, %d) 입니다.\n", x, y);
//src->at<Vec3b>(y,x) = 255;
}
break;
}
imshow("src",*src);
}
void fun(Mat &image, Scalar rgb) {
for(int y=0; y<image.rows; y++) {
for(int x=0; x<image.cols; x++) {
if(y<80 & x<255) {
image.at<Vec3b>(y,x)[0] = rgb[0];
image.at<Vec3b>(y,x)[1] = rgb[1];
image.at<Vec3b>(y,x)[2] = rgb[2];
}
}
}
}
'OpenCV > my_source' 카테고리의 다른 글
컬러 추출후 해당 컬러 보여주기2 (0) | 2013.09.03 |
---|---|
컬러 추출후 해당 컬러 보여주기 (0) | 2013.09.03 |
컬러공간 변환 (0) | 2013.05.21 |