⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edge.c

📁 微软的基于HMM的人脸识别原代码, 非常经典的说
💻 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 + -