Class: OpenCV::CvBox2D
- Inherits:
-
Object
- Object
- OpenCV::CvBox2D
- Includes:
- Curve
- Defined in:
- ext/opencv/cvbox2d.cpp,
ext/opencv/cvbox2d.cpp
Overview
Stores coordinates of a rotated rectangle.
Constant Summary collapse
- APPROX_CHAIN_OPTION =
approx_chain_option
Instance Method Summary collapse
-
#angle ⇒ Float
Returns angle of the box.
-
#angle= ⇒ CvBox2D
Set angle of the box.
-
#approx_chain(options) ⇒ CvSeq<CvPoint>
(also: #approx)
Approximates Freeman chains with a polygonal curve.
-
#center ⇒ CvPoint2D32f
Returns center point of the box.
-
#center= ⇒ CvBox2D
Set center point of the box.
-
#codes ⇒ Array<Fixnum>
Returns the chain codes.
-
#new(storage = nil) ⇒ CvChain
constructor
Create a new chain code.
-
#origin ⇒ CvPoint
Returns Freeman chain code origin.
-
#origin= ⇒ CvChain
Set Freeman chain code origin.
-
#points ⇒ Array<CvPoint>
Returns the points of the chain codes.
-
#size ⇒ CvSize2D32f
Returns size of the box.
-
#size= ⇒ CvBox2D
Set size of the box.
Methods included from Curve
#arc_length, #closed?, #convex?, #hole?, #simple?
Constructor Details
#new(storage = nil) ⇒ CvChain
Create a new chain code
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'ext/opencv/cvbox2d.cpp', line 42 VALUE rb_initialize(int argc, VALUE *argv, VALUE self) { VALUE center, size, angle; CvBox2D* self_ptr = CVBOX2D(self); rb_scan_args(argc, argv, "03", ¢er, &size, &angle); if (!NIL_P(center)) { self_ptr->center = VALUE_TO_CVPOINT2D32F(center); } if (!NIL_P(size)) { self_ptr->size = VALUE_TO_CVSIZE2D32F(size); self_ptr->angle = NUM2DBL(angle); } return self; } |
Instance Method Details
#angle ⇒ Float
Returns angle of the box
113 114 115 116 117 |
# File 'ext/opencv/cvbox2d.cpp', line 113 VALUE rb_angle(VALUE self) { return rb_float_new(CVBOX2D(self)->angle); } |
#angle= ⇒ CvBox2D
Set angle of the box
125 126 127 128 129 130 |
# File 'ext/opencv/cvbox2d.cpp', line 125 VALUE rb_set_angle(VALUE self, VALUE value) { CVBOX2D(self)->angle = NUM2DBL(value); return self; } |
#approx_chain(options) ⇒ CvSeq<CvPoint> Also known as: approx
Approximates Freeman chains with a polygonal curve
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 |
# File 'ext/opencv/cvchain.cpp', line 167 VALUE rb_approx_chains(int argc, VALUE *argv, VALUE self) { VALUE approx_chain_option; rb_scan_args(argc, argv, "01", &approx_chain_option); approx_chain_option = APPROX_CHAIN_OPTION(approx_chain_option); VALUE storage = cCvMemStorage::new_object(); CvSeq *seq = cvApproxChains(CVSEQ(self), CVMEMSTORAGE(storage), APPROX_CHAIN_METHOD(approx_chain_option), APPROX_CHAIN_PARAMETER(approx_chain_option), APPROX_CHAIN_MINIMAL_PERIMETER(approx_chain_option), APPROX_CHAIN_RECURSIVE(approx_chain_option)); if (seq && seq->total > 0) { return cCvSeq::new_sequence(cCvChain::rb_class(), seq, cCvPoint::rb_class(), storage); } return Qnil; } |
#center ⇒ CvPoint2D32f
Returns center point of the box
65 66 67 68 69 |
# File 'ext/opencv/cvbox2d.cpp', line 65 VALUE rb_center(VALUE self) { return REFER_OBJECT(cCvPoint2D32f::rb_class(), &CVBOX2D(self)->center, self); } |
#center= ⇒ CvBox2D
Set center point of the box
77 78 79 80 81 82 |
# File 'ext/opencv/cvbox2d.cpp', line 77 VALUE rb_set_center(VALUE self, VALUE value) { CVBOX2D(self)->center = VALUE_TO_CVPOINT2D32F(value); return self; } |
#codes ⇒ Array<Fixnum>
Returns the chain codes
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'ext/opencv/cvchain.cpp', line 106 VALUE rb_codes(VALUE self) { CvChain *chain = CVCHAIN(self); CvChainPtReader reader; int total = chain->total; VALUE ary = rb_ary_new2(total); try { cvStartReadChainPoints(chain, &reader); for (int i = 0; i < total; ++i) { CV_READ_SEQ_ELEM(reader.code, (*((CvSeqReader*)&(reader)))); rb_ary_store(ary, i, INT2FIX(reader.code)); } } catch (cv::Exception& e) { raise_cverror(e); } return ary; } |
#origin ⇒ CvPoint
Returns Freeman chain code origin
80 81 82 83 84 |
# File 'ext/opencv/cvchain.cpp', line 80 VALUE rb_origin(VALUE self) { return cCvPoint::new_object(CVCHAIN(self)->origin); } |
#origin= ⇒ CvChain
Set Freeman chain code origin
92 93 94 95 96 97 |
# File 'ext/opencv/cvchain.cpp', line 92 VALUE rb_set_origin(VALUE self, VALUE origin) { CVCHAIN(self)->origin = VALUE_TO_CVPOINT(origin); return self; } |
#points ⇒ Array<CvPoint>
Returns the points of the chain codes
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'ext/opencv/cvbox2d.cpp', line 138 VALUE rb_points(VALUE self) { const int n = 4; CvPoint2D32f p[n]; try { cvBoxPoints(*CVBOX2D(self), p); } catch (cv::Exception& e) { raise_cverror(e); } VALUE points = rb_ary_new2(n); for (int i = 0; i < n; ++i) { rb_ary_store(points, i, cCvPoint2D32f::new_object(p[i])); } return points; } |
#size ⇒ CvSize2D32f
Returns size of the box
89 90 91 92 93 |
# File 'ext/opencv/cvbox2d.cpp', line 89 VALUE rb_size(VALUE self) { return REFER_OBJECT(cCvSize2D32f::rb_class(), &CVBOX2D(self)->size, self); } |
#size= ⇒ CvBox2D
Set size of the box
101 102 103 104 105 106 |
# File 'ext/opencv/cvbox2d.cpp', line 101 VALUE rb_set_size(VALUE self, VALUE value) { CVBOX2D(self)->size = VALUE_TO_CVSIZE2D32F(value); return self; } |