-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathEllipsesSingleImage.cpp
More file actions
81 lines (68 loc) · 1.77 KB
/
EllipsesSingleImage.cpp
File metadata and controls
81 lines (68 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include "EllipsesSingleImage.hpp"
#ifndef __XCODE__
#include <cv.h>
#include <highgui.h>
#include "OpenCVUtils.hpp"
#else
#include <OpenCV/OpenCV.h>
#endif
#ifndef M_PI
#define M_PI 3.14156
#endif
using std::string;
using std::vector;
using std::ifstream;
using std::stringstream;
EllipsesSingleImage::EllipsesSingleImage(string fName) : RegionsSingleImage(fName){
}
EllipsesSingleImage::EllipsesSingleImage(IplImage *I) : RegionsSingleImage(I){
}
EllipsesSingleImage::~EllipsesSingleImage(){
}
void EllipsesSingleImage::read(string rectFile)
{
ifstream fin(rectFile.c_str());
if(fin.is_open()){
double x,y,t,w,h;
while(fin >> w >> h >> t >> x >> y){
t = (M_PI-t) *180/M_PI;
vector<double> *r = new vector<double>(5);
double myarray [] = {x,y,t,w,h};
r->insert (r->begin(), myarray, myarray+5);
EllipseR *ell = new EllipseR(NULL, r);
list->push_back((Region *)ell);
delete(r);
}
}
fin.close();
}
void EllipsesSingleImage::read(ifstream &fin, int n)
{
for(int i=0; i< n; i++){
double x,y,t,w,h, sc;
string line;
getline(fin, line);
stringstream ss(line);
ss >> w >> h >> t >> x >> y >> sc;
t = (M_PI-t) *180/M_PI;
vector<double> *r = new vector<double>(6);
double myarray [] = {x,y,t,w,h,sc};
r->insert (r->begin(), myarray, myarray+6);
EllipseR *ell = new EllipseR(NULL, r);
list->push_back((Region *)ell);
delete(r);
}
}
void EllipsesSingleImage::show()
{
IplImage *mask = cvCreateImage(cvGetSize(im), im->depth, im->nChannels);
cvCopy(im, mask, 0);
for(unsigned int i=0; i<list->size(); i++)
mask = ((EllipseR *)(list->at(i)))->display(mask, CV_RGB(255,0,0), 3, NULL);
showImage("Ellipses", mask);
cvReleaseImage(&mask);
}