📄 edge.c
字号:
char wndname[] = "Edge";
char tbarname[] = "Threshold";
int edge_thresh = 1;
// Load the source image
IPLIMAGE image = load_iplimage("headband.bmp");
// Create the output image
IPLIMAGE cedge = cvCreateImage(cvSize(image->width, image->height), IPL_DEPTH_8U, 3);
// Convert to grayscale
IPLIMAGE gray = cvCreateImage(cvSize(image->width, image->height), IPL_DEPTH_8U, 1);
IPLIMAGE edge = cvCreateImage(cvSize(image->width, image->height), IPL_DEPTH_8U, 1);
iplColorToGray(image, gray);
// define a trackbar callback
void on_trackbar(int h)
{
int i;
IplROI roi = {0, 0, 0, 0, 0};
roi.width = image->width;
roi.height = image->height;
// Run the edge detector on grayscale
cvCanny(gray, edge, 0.0f, (float)edge_thresh*5, 3);
// Apply the edge image as a mask to the color
image->roi = &roi;
cedge->roi = &roi;
for(i = 0; i < 3; i++)
{
roi.coi = i + 1;
iplAnd(image, edge, cedge);
}
image->roi = 0;
cedge->roi = 0;
show_iplimage(wndname, cedge);
}
// Create a window
named_window(wndname, 0);
// create a toolbar
create_trackbar(tbarname, wndname, &edge_thresh, 100, on_trackbar);
// Show the image
on_trackbar(0);
// Wait for a key stroke; the same function arranges events processing
wait_key(0);
cvReleaseImage(&image);
cvReleaseImage(&gray);
cvReleaseImage(&edge);
destroy_window(wndname);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -