1
0
Fork 0
mirror of https://github.com/ruby-opencv/ruby-opencv synced 2023-03-27 23:22:12 -04:00

add Mat#median_blur!

This commit is contained in:
ser1zw 2017-04-30 04:21:09 +09:00
parent 35c696fe1f
commit 18c3df7871
4 changed files with 57 additions and 6 deletions

View file

@ -407,6 +407,13 @@ namespace rubyopencv {
return self;
}
cv::Mat* rb_median_blur_internal(VALUE self, VALUE ksize, cv::Mat* destptr) {
cv::Mat* selfptr = obj2mat(self);
cv::medianBlur(*selfptr, *destptr, NUM2INT(ksize));
return destptr;
}
/*
* Blurs an image using the median filter.
*
@ -417,18 +424,32 @@ namespace rubyopencv {
* @opencv_func cv::medianBlur
*/
VALUE rb_median_blur(VALUE self, VALUE ksize) {
cv::Mat* selfptr = obj2mat(self);
cv::Mat* dstptr = NULL;
cv::Mat* destptr = new cv::Mat();
try {
dstptr = new cv::Mat();
cv::medianBlur(*selfptr, *dstptr, NUM2INT(ksize));
rb_median_blur_internal(self, ksize, destptr);
}
catch (cv::Exception& e) {
delete dstptr;
delete destptr;
Error::raise(e);
}
return mat2obj(dstptr, CLASS_OF(self));
return mat2obj(destptr, CLASS_OF(self));
}
/*
* @overload median_blur!(ksize)
* @see #median_blur
*/
VALUE rb_median_blur_bang(VALUE self, VALUE ksize) {
cv::Mat* destptr = obj2mat(self);
try {
rb_median_blur_internal(self, ksize, destptr);
}
catch (cv::Exception& e) {
Error::raise(e);
}
return self;
}
/*