zoukankan      html  css  js  c++  java
  • 金字塔分割

    #include "cv.h"
    #include "highgui.h"
    #include <math.h>
    
    IplImage* image[2] = { 0, 0 }, *image0 = 0, *image1 = 0;
    CvSize size;
    
    int w0, h0,i;
    int threshold1, threshold2;
    int l,level = 4;
    int sthreshold1, sthreshold2;
    int l_comp;
    int block_size = 1000;
    float parameter;
    double threshold;
    double rezult, min_rezult;
    CvFilter filter = CV_GAUSSIAN_5x5;
    CvConnectedComp *cur_comp, min_comp;
    CvSeq *comp;
    CvMemStorage *storage;
    
    CvPoint pt1, pt2;
    
    void ON_SEGMENT(int a)
    {   
        cvPyrSegmentation(image0, image1, storage, &comp, 
                          level, threshold1+1, threshold2+1);
    
        /*l_comp = comp->total;
    
        i = 0;
        min_comp.value = cvScalarAll(0);
        while(i<l_comp)
        {
            cur_comp = (CvConnectedComp*)cvGetSeqElem ( comp, i );
            if(fabs(255- min_comp.value.val[0])>
               fabs(255- cur_comp->value.val[0]) &&
               fabs(min_comp.value.val[1])>
               fabs(cur_comp->value.val[1]) &&
               fabs(min_comp.value.val[2])>
               fabs(cur_comp->value.val[2]) )
               min_comp = *cur_comp;
            i++;
        }*/
        cvShowImage("Segmentation", image1);
    }
    
    int main( int argc, char** argv )
    {
    	char* filename = argc == 2 ? argv[1] : (char*)"E:\\111.jpg";
            if( (image[0] = cvLoadImage( filename, 1)) == 0 )
            return -1;
        cvNamedWindow("Source", 0);
        cvShowImage("Source", image[0]);
    
        cvNamedWindow("Segmentation", 0);
    
        storage = cvCreateMemStorage ( block_size );
    
        image[0]->width &= -(1<<level);
        image[0]->height &= -(1<<level);
    
        image0 = cvCloneImage( image[0] );
        image1 = cvCloneImage( image[0] );
        // 对彩色图像进行分割
        l = 1;
        threshold1 =255;
        threshold2 =30;
    
        ON_SEGMENT(1);
    
    sthreshold1 = cvCreateTrackbar("Threshold1", "Segmentation", &threshold1, 255, 
    ON_SEGMENT);
    sthreshold2 = cvCreateTrackbar("Threshold2", "Segmentation", &threshold2, 255, 
    ON_SEGMENT);
    
        cvShowImage("Segmentation", image1);
        cvWaitKey(0);
    
        cvDestroyWindow("Segmentation");
        cvDestroyWindow("Source");
    
        cvReleaseMemStorage(&storage );
    
        cvReleaseImage(&image[0]);
        cvReleaseImage(&image0);
        cvReleaseImage(&image1);
    
        return 0;
    }
    
  • 相关阅读:
    The kernel’s command-line parameters(1)
    Linux kernel release 5.x <http://kernel.org/>(1)
    2020 LInux Kernel History Report(2)
    2020 LInux Kernel History Report
    Android下拉刷新,上拉加载
    多条目加载和适配器
    PAT:1071. Speech Patterns (25) AC
    PAT:1054. The Dominant Color (20) AC(map法)
    PAT:1054. The Dominant Color (20) AC(抓住最多的特点,处理不同和相同的情况,留下剩余的答案)
    PAT:1060. Are They Equal (25) AC
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/2321230.html
Copyright © 2011-2022 走看看