mirror of
https://github.com/ruby-opencv/ruby-opencv
synced 2023-03-27 23:22:12 -04:00
modified and tested CvConnectedComp
This commit is contained in:
parent
741f83daff
commit
37e95115e0
3 changed files with 94 additions and 3 deletions
|
@ -50,14 +50,29 @@ define_ruby_class()
|
|||
rb_define_method(rb_klass, "area", RUBY_METHOD_FUNC(rb_area), 0);
|
||||
rb_define_method(rb_klass, "value", RUBY_METHOD_FUNC(rb_value), 0);
|
||||
rb_define_method(rb_klass, "rect", RUBY_METHOD_FUNC(rb_rect), 0);
|
||||
rb_define_method(rb_klass, "rect=", RUBY_METHOD_FUNC(rb_set_rect), 0);
|
||||
rb_define_method(rb_klass, "rect=", RUBY_METHOD_FUNC(rb_set_rect), 1);
|
||||
rb_define_method(rb_klass, "contour", RUBY_METHOD_FUNC(rb_contour), 0);
|
||||
}
|
||||
|
||||
void
|
||||
cvconnectedcomp_free(void *ptr)
|
||||
{
|
||||
if (ptr) {
|
||||
CvConnectedComp* connected_comp = (CvConnectedComp*)ptr;
|
||||
if (connected_comp->contour) {
|
||||
CvContour *contour = (CvContour*)connected_comp->contour;
|
||||
if (contour->storage)
|
||||
cvReleaseMemStorage(&(contour->storage));
|
||||
}
|
||||
free(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
VALUE
|
||||
rb_allocate(VALUE klass)
|
||||
{
|
||||
CvConnectedComp *ptr;
|
||||
return Data_Make_Struct(klass, CvConnectedComp, 0, -1, ptr);
|
||||
return Data_Make_Struct(klass, CvConnectedComp, 0, cvconnectedcomp_free, ptr);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -97,6 +112,15 @@ rb_set_rect(VALUE self, VALUE rect)
|
|||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return optional component boundary
|
||||
*/
|
||||
VALUE
|
||||
rb_contour(VALUE self)
|
||||
{
|
||||
return REFER_OBJECT(cCvContour::rb_class(), &CVCONNECTEDCOMP(self)->contour, self);
|
||||
}
|
||||
|
||||
VALUE
|
||||
new_object()
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue