Пример #1
0
int main(int argc, char ** argv){
    Prewitt prewitt = Prewitt(argv[1]);
    prewitt.get();
    char *ptr;
    thresholdValue = strtol(argv[2], &ptr, 10);

    imshow(windowName, prewitt.getPrewitt());
//    cv::waitKey(0);
//    prewitt.applyThreshold(thresholdValue);
    prewitt.save(thresholdValue);
//    cv::waitKey(0);
}
Пример #2
0
void EdgeDetection(double *src,double *dst,int width,int height,int detector,double threshold,int m_width,int m_height,double deta){
    double maxvalue=0;
    switch (detector) {
        case EDGE_DETECTOR_ROBERT:
        {
            maxvalue=Robert(src, dst,NULL, width, height);
            Threshold(dst, dst, width, height, maxvalue*threshold, THRESHOLD_TYPE3);
            break;
        }
        case EDGE_DETECTOR_PREWITT:
        {
            maxvalue=Prewitt(src, dst, width, height);
            Threshold(dst, dst, width, height, maxvalue*threshold, THRESHOLD_TYPE3);
            break;
        }
        case EDGE_DETECTOR_SOBEL:
        {
            maxvalue=Sobel(src, dst,NULL, width, height,(int)deta);
            Threshold(dst, dst, width, height, maxvalue*threshold, THRESHOLD_TYPE3);
            break;
        }
        case EDGE_DETECTOR_KIRSCH:
        {
            maxvalue=Kirsch(src, dst, width, height);
            Threshold(dst, dst, width, height, maxvalue*threshold, THRESHOLD_TYPE3);
            break;
        }
        case EDGE_DETECTOR_LOG:
        {
            maxvalue=LoG(src, dst, width, height,m_width,m_height,deta,threshold);
            Threshold(dst, dst, width, height, maxvalue*threshold, THRESHOLD_TYPE3);
            break;
        }
        case EDGE_DETECTOR_LAPLACE:
        {
            maxvalue=Laplace(src, dst, width, height);
            Threshold(dst, dst, width, height, maxvalue*threshold, THRESHOLD_TYPE3);
            break;
        }
        default:
            break;
    }
}