Ask Your Question

vibek4989's profile - activity

2017-04-12 21:31:56 -0600 received badge  Famous Question (source)
2016-04-20 00:25:21 -0600 received badge  Notable Question (source)
2016-01-23 12:44:53 -0600 received badge  Student (source)
2016-01-21 14:36:47 -0600 received badge  Popular Question (source)
2014-04-28 05:04:35 -0600 asked a question How to plot a graph or histogram using Opencv?

Can anybody had a experience how to plot a graph or histogram using Opencv? I need to plot my result in a graph using Opencv. but couldn't found proper Idea ..>!!

2014-01-05 12:48:58 -0600 asked a question Circle Detection using live vision camera
#include<iostream>
#include<cv.h>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<stdio.h>
#include<math.h>

using namespace cv;
using namespace std;
#define CLS()

//printf("\033 [H\033[2J");
//fflush(stdout);
typedef struct {

   Point sum;
   Point sum_abs;
   Point av_sum;
   Point av_abs;
   float av_angle;
   int n;
} LineStruct;

float calcAngle(Point delta)
{
   float angle;
     if(delta.y !=0)
      angle =(float)atan(((double)delta.x/ -(double)delta.y));
        else
            angle =CV_PI/2;
return angle;
}
void setLabel(Mat& dst, string label, vector& contour)
{ 
int fontface = FONT_HERSHEY_PLAIN;
double scale =0.5;
int thickness =1;
int baseline =0;
//char text[50];
Size text = getTextSize(label, fontface, scale, thickness, &baseline);
Rect r = boundingRect(contour); 
//putText(im, label, fontFace, fontScale, CV_RGB(0,0,0), thickness, 8);//char screenshot[50];
//int screenshot_counter =0;
//putText(cdst, text, label, fontface, scale, Scalar(0,255,0), thickness, 8);
}
int main(int agrc, char * argv[1])
{
CvCapture* capture =0;
capture =cvCreateFileCapture(argv[1]);
if (!capture)
{
  return -1;
}
IplImage *bgr_frame=cvQueryFrame(capture);
CvSize size =cvSize((int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH),(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT));
IplImage* pgm_frame= cvCreateImage(size,IPL_DEPTH_8U,1);
int frame_count=0;
int frames =(int) cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);

//char text[50];
//int fontFace = FONT_HERSHEY_PLAIN;
//double fontScale =1;
//int thickness =1;
char screenshot[50];
int screenshot_counter =0;
 while( (bgr_frame=cvQueryFrame(capture)) !=NULL)
{
frame_count++;
if(frame_count==frames-1)
{
  cvSetCaptureProperty(capture,CV_CAP_PROP_POS_FRAMES,0);
frame_count=0;
}
cvConvertImage(bgr_frame, pgm_frame,0);
Mat gray=pgm_frame;
Mat dst = bgr_frame;
GaussianBlur( gray, gray,Size(9,9), 2,2);
Canny (gray, gray, 50, 200,3);
vector<vector<Point> >contours;
findContours(gray.clone(),contours,CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
vector<Point>approx;
//Mat dst = bgr_frame.clone();
for (int i=0;i< contours.size(); i++)
{
    approxPolyDP(Mat(contours[i]),approx, arcLength(cv::Mat(contours[i]),true)* 0.02,true);
     if(fabs(contourArea(contours[i]))<100 || ! isContourConvex(approx))
        //{
           continue;
//}

if(approx.size() >= 4 && approx.size() >6)
{

   printf("circle Detection\n");
double area =contourArea(contours[i]);
Rect  r= boundingRect(contours[i]);
int radius =r.width/2;
if (abs(1-((double)r.width/r.height))<= 0.2 && abs(1-(area/(CV_PI * pow(radius,2))))<= 0.2)
{
       setLabel(dst, "CIR", contours[i]);
}
}
}

Point circle_center;
circle(dst, Point(size.width/2,size.height/2),4,Scalar(255,0,0),-1,8,0);
CLS();
if ((!pgm_frame)||(!bgr_frame))
 break;
cvShowImage("Edges",pgm_frame);
cvShowImage("Result",bgr_frame);
imshow("Detected Lines", dst);
char c= cvWaitKey(33);
if(c=='p')

{ 
c=0;
while(1)
{ 
c =cvWaitKey(33);
if (c=='p') break;
if (c==27) break;
if (c=='s')
{
sprintf(screenshot,"screenshot %d.jpg", screenshot_counter);
imwrite(screenshot, dst);
screenshot_counter++;
}
}
}
if (c==27)
break;
if(c=='s')
{
 sprintf(screenshot,"Screenshot%d.jpg", screenshot_counter);
 imwrite(screenshot,dst);
screenshot_counter++;
}
}
cvReleaseImage(&bgr_frame);
cvReleaseImage(&pgm_frame);
cvReleaseCapture(&capture);
cvDestroyWindow("Edges");
cvDestroyWindow("Result");
cvDestroyWindow("Detected Lines");
return 0;
}

But it showing some error, i tried a lot to find out according Opencv Tutorial, but couldn't. The error are as follows,

circle_detect.cpp:34:39: error: ‘vector’ is not a type circle_detect.cpp: In function ‘int main(int, char**)’: circle_detect.cpp:101:40: error: invalid initialization of reference ... (more)

2014-01-05 12:46:01 -0600 asked a question I am working on how to detect circle using live camera

include<iostream>

include<cv.h>

include<opencv2 core="" core.hpp="">

include<opencv2 highgui="" highgui.hpp="">

include<opencv2 imgproc="" imgproc.hpp="">

include<stdio.h>

include<math.h>

using namespace cv; using namespace std;

define CLS()

//printf("\033 [H\033[2J"); //fflush(stdout); typedef struct {

Point sum; Point sum_abs; Point av_sum; Point av_abs; float av_angle; int n; } LineStruct;

float calcAngle(Point delta) { float angle; if(delta.y !=0) angle =(float)atan(((double)delta.x/ -(double)delta.y)); else angle =CV_PI/2; return angle; } void setLabel(Mat& dst, string label, vector& contour) { int fontface = FONT_HERSHEY_PLAIN; double scale =0.5; int thickness =1; int baseline =0; //char text[50]; Size text = getTextSize(label, fontface, scale, thickness, &baseline); Rect r = boundingRect(contour); //putText(im, label, fontFace, fontScale, CV_RGB(0,0,0), thickness, 8);//char screenshot[50]; //int screenshot_counter =0; //putText(cdst, text, label, fontface, scale, Scalar(0,255,0), thickness, 8); } int main(int agrc, char * argv[1]) { CvCapture* capture =0; capture =cvCreateFileCapture(argv[1]); if (!capture) { return -1; } IplImage bgr_frame=cvQueryFrame(capture); CvSize size =cvSize((int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH),(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT)); IplImage pgm_frame= cvCreateImage(size,IPL_DEPTH_8U,1); int frame_count=0; int frames =(int) cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);

//char text[50]; //int fontFace = FONT_HERSHEY_PLAIN; //double fontScale =1; //int thickness =1; char screenshot[50]; int screenshot_counter =0; while( (bgr_frame=cvQueryFrame(capture)) !=NULL) { frame_count++; if(frame_count==frames-1) { cvSetCaptureProperty(capture,CV_CAP_PROP_POS_FRAMES,0); frame_count=0; } cvConvertImage(bgr_frame, pgm_frame,0); Mat gray=pgm_frame; Mat dst = bgr_frame; GaussianBlur( gray, gray,Size(9,9), 2,2); Canny (gray, gray, 50, 200,3); vector<vector<point> >contours; findContours(gray.clone(),contours,CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); vector<point>approx; //Mat dst = bgr_frame.clone(); for (int i=0;i< contours.size(); i++) { approxPolyDP(Mat(contours[i]),approx, arcLength(cv::Mat(contours[i]),true)* 0.02,true); if(fabs(contourArea(contours[i]))<100 || ! isContourConvex(approx)) //{ continue; //}

if(approx.size() >= 4 && approx.size() >6) {

printf("circle Detection\n"); double area =contourArea(contours[i]); Rect r= boundingRect(contours[i]); int radius =r.width/2; if (abs(1-((double)r.width/r.height))<= 0.2 && abs(1-(area/(CV_PI * pow(radius,2))))<= 0.2) { setLabel(dst, "CIR", contours[i]); } } }

Point circle_center; circle(dst, Point(size.width/2,size.height/2),4,Scalar(255,0,0),-1,8,0); CLS(); if ((!pgm_frame)||(!bgr_frame)) break; cvShowImage("Edges",pgm_frame); cvShowImage("Result",bgr_frame); imshow("Detected Lines", dst); char c= cvWaitKey(33); if(c=='p')

{ c=0; while(1) { c =cvWaitKey(33); if (c=='p') break; if (c==27) break; if (c=='s') { sprintf(screenshot,"screenshot %d.jpg", screenshot_counter); imwrite(screenshot, dst); screenshot_counter++; } } } if (c==27) break; if(c=='s') { sprintf(screenshot,"Screenshot%d.jpg", screenshot_counter); imwrite(screenshot,dst); screenshot_counter++; } } cvReleaseImage(&bgr_frame); cvReleaseImage(&pgm_frame); cvReleaseCapture(&capture); cvDestroyWindow("Edges"); cvDestroyWindow("Result"); cvDestroyWindow("Detected Lines"); return 0; }