Ask Your Question

shoebtamboli's profile - activity

2016-11-17 16:21:28 -0600 commented question Hi.. i'm new to opencv and trying shape detection. I have faced the following error "Unhandled exception (opencv_imgproc243d.dll) in ShapeDetection.exe " Can anyone knows how to solve this???

Also i'll upgrade opencv and test it.... thanks for the reply

2016-11-17 16:19:53 -0600 commented answer Hi.. i'm new to opencv and trying shape detection. I have faced the following error "Unhandled exception (opencv_imgproc243d.dll) in ShapeDetection.exe " Can anyone knows how to solve this???

dll is present..but still facing the problem..

2016-11-17 16:19:26 -0600 commented question Hi.. i'm new to opencv and trying shape detection. I have faced the following error "Unhandled exception (opencv_imgproc243d.dll) in ShapeDetection.exe " Can anyone knows how to solve this???

// to determine the shape of the contour if (vtc == 4) setLabel(dst, "RECT", contours[i]); else if (vtc == 5) setLabel(dst, "PENTA", contours[i]); else if (vtc == 6) setLabel(dst, "HEXA", contours[i]); } else { // Detect and label circles double area = cv::contourArea(contours[i]); cv::Rect r = cv::boundingRect(contours[i]); int radius = r.width / 2;

                    if (std::abs(1 - ((double)r.width / r.height)) <= 0.2 &&
                        std::abs(1 - (area / (CV_PI * (radius*radius)))) <= 0.2)
                        setLabel(dst, "CIR", contours[i]);
                }
            }
        cv::imshow("src", src);
        cv::imshow("dst", dst);

    }
2016-11-17 16:19:05 -0600 commented question Hi.. i'm new to opencv and trying shape detection. I have faced the following error "Unhandled exception (opencv_imgproc243d.dll) in ShapeDetection.exe " Can anyone knows how to solve this???

Rest of the while loop...

if (approx.size() == 3) { setLabel(dst, "TRI", contours[i]); // Triangles } else if (approx.size() >= 4 && approx.size() <= 6) { // Number of vertices of polygonal curve int vtc = approx.size();

                    // Get the cosines of all corners
                    std::vector<double> cos;
                    for (int j = 2; j < vtc + 1; j++)
                        cos.push_back(angle(approx[j%vtc], approx[j - 2], approx[j - 1]));

                    // Sort ascending the cosine values
                    std::sort(cos.begin(), cos.end());

                    // Get the lowest and the highest cosine
                    double mincos = cos.front();
                    double maxcos = cos.back();

                    // Use the degrees obtained above and the number of vertices
                    // to determine the shape of the contour
                    if (vtc == 4)
                        setLabel
2016-11-16 23:30:25 -0600 asked a question Hi.. i'm new to opencv and trying shape detection. I have faced the following error "Unhandled exception (opencv_imgproc243d.dll) in ShapeDetection.exe " Can anyone knows how to solve this???

My program,

int main()
{
    //cv::Mat src = cv::imread("polygon.png");
    cv::Mat src;
    cv::Mat gray;
    cv::Mat bw;
    cv::Mat dst;

    std::vector<cv::Point> approx;
    std::vector<std::vector<cv::Point>> contours;

    VideoCapture capture(0);
    int q;

    while (cvWaitKey(30) != 'q')
    {
        capture >> src;
        if (true)
        {
            // Convert to grayscale
            cv::cvtColor(src, gray, CV_BGR2GRAY);

            // Use Canny instead of threshold to catch squares with gradient shading
            blur(gray, bw, Size(3, 3));
            cv::Canny(gray, bw, 80, 240, 3);
            cv::imshow("bw", bw);
            //cv::bitwise_not(bw, bw);

            // Find contours
            cv::findContours(bw.clone(), contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

            src.copyTo(dst);

            for (int i = 0; i < contours.size(); i++)
            {
                // Approximate contour with accuracy proportional
                // to the contour perimeter
                cv::approxPolyDP(cv::Mat(contours[i]), approx, cv::arcLength(cv::Mat(contours[i]), true)*0.02, true);

                // Skip small or non-convex objects
                if (std::fabs(cv::contourArea(contours[i])) < 100 || !cv::isContourConvex(approx))
                    continue;
..................

Facing the problem in the for loop when i=1 and breaks at point cv::approxPolyDP().