001// 002// This file is auto-generated. Please don't modify it! 003// 004package org.opencv.features2d; 005 006import java.util.ArrayList; 007import java.util.List; 008import org.opencv.core.Mat; 009import org.opencv.core.MatOfPoint; 010import org.opencv.core.MatOfRect; 011import org.opencv.features2d.Feature2D; 012import org.opencv.features2d.MSER; 013import org.opencv.utils.Converters; 014 015// C++: class MSER 016/** 017 * Maximally stable extremal region extractor 018 * 019 * The class encapsulates all the parameters of the %MSER extraction algorithm (see [wiki 020 * article](http://en.wikipedia.org/wiki/Maximally_stable_extremal_regions)). 021 * 022 * <ul> 023 * <li> 024 * there are two different implementation of %MSER: one for grey image, one for color image 025 * </li> 026 * </ul> 027 * 028 * <ul> 029 * <li> 030 * the grey image algorithm is taken from: CITE: nister2008linear ; the paper claims to be faster 031 * than union-find method; it actually get 1.5~2m/s on my centrino L7200 1.2GHz laptop. 032 * </li> 033 * </ul> 034 * 035 * <ul> 036 * <li> 037 * the color image algorithm is taken from: CITE: forssen2007maximally ; it should be much slower 038 * than grey image method ( 3~4 times ) 039 * </li> 040 * </ul> 041 * 042 * <ul> 043 * <li> 044 * (Python) A complete example showing the use of the %MSER detector can be found at samples/python/mser.py 045 * </li> 046 * </ul> 047 */ 048public class MSER extends Feature2D { 049 050 protected MSER(long addr) { super(addr); } 051 052 // internal usage only 053 public static MSER __fromPtr__(long addr) { return new MSER(addr); } 054 055 // 056 // C++: static Ptr_MSER cv::MSER::create(int delta = 5, int min_area = 60, int max_area = 14400, double max_variation = 0.25, double min_diversity = .2, int max_evolution = 200, double area_threshold = 1.01, double min_margin = 0.003, int edge_blur_size = 5) 057 // 058 059 /** 060 * Full constructor for %MSER detector 061 * 062 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 063 * @param min_area prune the area which smaller than minArea 064 * @param max_area prune the area which bigger than maxArea 065 * @param max_variation prune the area have similar size to its children 066 * @param min_diversity for color image, trace back to cut off mser with diversity less than min_diversity 067 * @param max_evolution for color image, the evolution steps 068 * @param area_threshold for color image, the area threshold to cause re-initialize 069 * @param min_margin for color image, ignore too small margin 070 * @param edge_blur_size for color image, the aperture size for edge blur 071 * @return automatically generated 072 */ 073 public static MSER create(int delta, int min_area, int max_area, double max_variation, double min_diversity, int max_evolution, double area_threshold, double min_margin, int edge_blur_size) { 074 return MSER.__fromPtr__(create_0(delta, min_area, max_area, max_variation, min_diversity, max_evolution, area_threshold, min_margin, edge_blur_size)); 075 } 076 077 /** 078 * Full constructor for %MSER detector 079 * 080 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 081 * @param min_area prune the area which smaller than minArea 082 * @param max_area prune the area which bigger than maxArea 083 * @param max_variation prune the area have similar size to its children 084 * @param min_diversity for color image, trace back to cut off mser with diversity less than min_diversity 085 * @param max_evolution for color image, the evolution steps 086 * @param area_threshold for color image, the area threshold to cause re-initialize 087 * @param min_margin for color image, ignore too small margin 088 * @return automatically generated 089 */ 090 public static MSER create(int delta, int min_area, int max_area, double max_variation, double min_diversity, int max_evolution, double area_threshold, double min_margin) { 091 return MSER.__fromPtr__(create_1(delta, min_area, max_area, max_variation, min_diversity, max_evolution, area_threshold, min_margin)); 092 } 093 094 /** 095 * Full constructor for %MSER detector 096 * 097 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 098 * @param min_area prune the area which smaller than minArea 099 * @param max_area prune the area which bigger than maxArea 100 * @param max_variation prune the area have similar size to its children 101 * @param min_diversity for color image, trace back to cut off mser with diversity less than min_diversity 102 * @param max_evolution for color image, the evolution steps 103 * @param area_threshold for color image, the area threshold to cause re-initialize 104 * @return automatically generated 105 */ 106 public static MSER create(int delta, int min_area, int max_area, double max_variation, double min_diversity, int max_evolution, double area_threshold) { 107 return MSER.__fromPtr__(create_2(delta, min_area, max_area, max_variation, min_diversity, max_evolution, area_threshold)); 108 } 109 110 /** 111 * Full constructor for %MSER detector 112 * 113 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 114 * @param min_area prune the area which smaller than minArea 115 * @param max_area prune the area which bigger than maxArea 116 * @param max_variation prune the area have similar size to its children 117 * @param min_diversity for color image, trace back to cut off mser with diversity less than min_diversity 118 * @param max_evolution for color image, the evolution steps 119 * @return automatically generated 120 */ 121 public static MSER create(int delta, int min_area, int max_area, double max_variation, double min_diversity, int max_evolution) { 122 return MSER.__fromPtr__(create_3(delta, min_area, max_area, max_variation, min_diversity, max_evolution)); 123 } 124 125 /** 126 * Full constructor for %MSER detector 127 * 128 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 129 * @param min_area prune the area which smaller than minArea 130 * @param max_area prune the area which bigger than maxArea 131 * @param max_variation prune the area have similar size to its children 132 * @param min_diversity for color image, trace back to cut off mser with diversity less than min_diversity 133 * @return automatically generated 134 */ 135 public static MSER create(int delta, int min_area, int max_area, double max_variation, double min_diversity) { 136 return MSER.__fromPtr__(create_4(delta, min_area, max_area, max_variation, min_diversity)); 137 } 138 139 /** 140 * Full constructor for %MSER detector 141 * 142 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 143 * @param min_area prune the area which smaller than minArea 144 * @param max_area prune the area which bigger than maxArea 145 * @param max_variation prune the area have similar size to its children 146 * @return automatically generated 147 */ 148 public static MSER create(int delta, int min_area, int max_area, double max_variation) { 149 return MSER.__fromPtr__(create_5(delta, min_area, max_area, max_variation)); 150 } 151 152 /** 153 * Full constructor for %MSER detector 154 * 155 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 156 * @param min_area prune the area which smaller than minArea 157 * @param max_area prune the area which bigger than maxArea 158 * @return automatically generated 159 */ 160 public static MSER create(int delta, int min_area, int max_area) { 161 return MSER.__fromPtr__(create_6(delta, min_area, max_area)); 162 } 163 164 /** 165 * Full constructor for %MSER detector 166 * 167 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 168 * @param min_area prune the area which smaller than minArea 169 * @return automatically generated 170 */ 171 public static MSER create(int delta, int min_area) { 172 return MSER.__fromPtr__(create_7(delta, min_area)); 173 } 174 175 /** 176 * Full constructor for %MSER detector 177 * 178 * @param delta it compares \((size_{i}-size_{i-delta})/size_{i-delta}\) 179 * @return automatically generated 180 */ 181 public static MSER create(int delta) { 182 return MSER.__fromPtr__(create_8(delta)); 183 } 184 185 /** 186 * Full constructor for %MSER detector 187 * 188 * @return automatically generated 189 */ 190 public static MSER create() { 191 return MSER.__fromPtr__(create_9()); 192 } 193 194 195 // 196 // C++: void cv::MSER::detectRegions(Mat image, vector_vector_Point& msers, vector_Rect& bboxes) 197 // 198 199 /** 200 * Detect %MSER regions 201 * 202 * @param image input image (8UC1, 8UC3 or 8UC4, must be greater or equal than 3x3) 203 * @param msers resulting list of point sets 204 * @param bboxes resulting bounding boxes 205 */ 206 public void detectRegions(Mat image, List<MatOfPoint> msers, MatOfRect bboxes) { 207 Mat msers_mat = new Mat(); 208 Mat bboxes_mat = bboxes; 209 detectRegions_0(nativeObj, image.nativeObj, msers_mat.nativeObj, bboxes_mat.nativeObj); 210 Converters.Mat_to_vector_vector_Point(msers_mat, msers); 211 msers_mat.release(); 212 } 213 214 215 // 216 // C++: void cv::MSER::setDelta(int delta) 217 // 218 219 public void setDelta(int delta) { 220 setDelta_0(nativeObj, delta); 221 } 222 223 224 // 225 // C++: int cv::MSER::getDelta() 226 // 227 228 public int getDelta() { 229 return getDelta_0(nativeObj); 230 } 231 232 233 // 234 // C++: void cv::MSER::setMinArea(int minArea) 235 // 236 237 public void setMinArea(int minArea) { 238 setMinArea_0(nativeObj, minArea); 239 } 240 241 242 // 243 // C++: int cv::MSER::getMinArea() 244 // 245 246 public int getMinArea() { 247 return getMinArea_0(nativeObj); 248 } 249 250 251 // 252 // C++: void cv::MSER::setMaxArea(int maxArea) 253 // 254 255 public void setMaxArea(int maxArea) { 256 setMaxArea_0(nativeObj, maxArea); 257 } 258 259 260 // 261 // C++: int cv::MSER::getMaxArea() 262 // 263 264 public int getMaxArea() { 265 return getMaxArea_0(nativeObj); 266 } 267 268 269 // 270 // C++: void cv::MSER::setMaxVariation(double maxVariation) 271 // 272 273 public void setMaxVariation(double maxVariation) { 274 setMaxVariation_0(nativeObj, maxVariation); 275 } 276 277 278 // 279 // C++: double cv::MSER::getMaxVariation() 280 // 281 282 public double getMaxVariation() { 283 return getMaxVariation_0(nativeObj); 284 } 285 286 287 // 288 // C++: void cv::MSER::setMinDiversity(double minDiversity) 289 // 290 291 public void setMinDiversity(double minDiversity) { 292 setMinDiversity_0(nativeObj, minDiversity); 293 } 294 295 296 // 297 // C++: double cv::MSER::getMinDiversity() 298 // 299 300 public double getMinDiversity() { 301 return getMinDiversity_0(nativeObj); 302 } 303 304 305 // 306 // C++: void cv::MSER::setMaxEvolution(int maxEvolution) 307 // 308 309 public void setMaxEvolution(int maxEvolution) { 310 setMaxEvolution_0(nativeObj, maxEvolution); 311 } 312 313 314 // 315 // C++: int cv::MSER::getMaxEvolution() 316 // 317 318 public int getMaxEvolution() { 319 return getMaxEvolution_0(nativeObj); 320 } 321 322 323 // 324 // C++: void cv::MSER::setAreaThreshold(double areaThreshold) 325 // 326 327 public void setAreaThreshold(double areaThreshold) { 328 setAreaThreshold_0(nativeObj, areaThreshold); 329 } 330 331 332 // 333 // C++: double cv::MSER::getAreaThreshold() 334 // 335 336 public double getAreaThreshold() { 337 return getAreaThreshold_0(nativeObj); 338 } 339 340 341 // 342 // C++: void cv::MSER::setMinMargin(double min_margin) 343 // 344 345 public void setMinMargin(double min_margin) { 346 setMinMargin_0(nativeObj, min_margin); 347 } 348 349 350 // 351 // C++: double cv::MSER::getMinMargin() 352 // 353 354 public double getMinMargin() { 355 return getMinMargin_0(nativeObj); 356 } 357 358 359 // 360 // C++: void cv::MSER::setEdgeBlurSize(int edge_blur_size) 361 // 362 363 public void setEdgeBlurSize(int edge_blur_size) { 364 setEdgeBlurSize_0(nativeObj, edge_blur_size); 365 } 366 367 368 // 369 // C++: int cv::MSER::getEdgeBlurSize() 370 // 371 372 public int getEdgeBlurSize() { 373 return getEdgeBlurSize_0(nativeObj); 374 } 375 376 377 // 378 // C++: void cv::MSER::setPass2Only(bool f) 379 // 380 381 public void setPass2Only(boolean f) { 382 setPass2Only_0(nativeObj, f); 383 } 384 385 386 // 387 // C++: bool cv::MSER::getPass2Only() 388 // 389 390 public boolean getPass2Only() { 391 return getPass2Only_0(nativeObj); 392 } 393 394 395 // 396 // C++: String cv::MSER::getDefaultName() 397 // 398 399 public String getDefaultName() { 400 return getDefaultName_0(nativeObj); 401 } 402 403 404 @Override 405 protected void finalize() throws Throwable { 406 delete(nativeObj); 407 } 408 409 410 411 // C++: static Ptr_MSER cv::MSER::create(int delta = 5, int min_area = 60, int max_area = 14400, double max_variation = 0.25, double min_diversity = .2, int max_evolution = 200, double area_threshold = 1.01, double min_margin = 0.003, int edge_blur_size = 5) 412 private static native long create_0(int delta, int min_area, int max_area, double max_variation, double min_diversity, int max_evolution, double area_threshold, double min_margin, int edge_blur_size); 413 private static native long create_1(int delta, int min_area, int max_area, double max_variation, double min_diversity, int max_evolution, double area_threshold, double min_margin); 414 private static native long create_2(int delta, int min_area, int max_area, double max_variation, double min_diversity, int max_evolution, double area_threshold); 415 private static native long create_3(int delta, int min_area, int max_area, double max_variation, double min_diversity, int max_evolution); 416 private static native long create_4(int delta, int min_area, int max_area, double max_variation, double min_diversity); 417 private static native long create_5(int delta, int min_area, int max_area, double max_variation); 418 private static native long create_6(int delta, int min_area, int max_area); 419 private static native long create_7(int delta, int min_area); 420 private static native long create_8(int delta); 421 private static native long create_9(); 422 423 // C++: void cv::MSER::detectRegions(Mat image, vector_vector_Point& msers, vector_Rect& bboxes) 424 private static native void detectRegions_0(long nativeObj, long image_nativeObj, long msers_mat_nativeObj, long bboxes_mat_nativeObj); 425 426 // C++: void cv::MSER::setDelta(int delta) 427 private static native void setDelta_0(long nativeObj, int delta); 428 429 // C++: int cv::MSER::getDelta() 430 private static native int getDelta_0(long nativeObj); 431 432 // C++: void cv::MSER::setMinArea(int minArea) 433 private static native void setMinArea_0(long nativeObj, int minArea); 434 435 // C++: int cv::MSER::getMinArea() 436 private static native int getMinArea_0(long nativeObj); 437 438 // C++: void cv::MSER::setMaxArea(int maxArea) 439 private static native void setMaxArea_0(long nativeObj, int maxArea); 440 441 // C++: int cv::MSER::getMaxArea() 442 private static native int getMaxArea_0(long nativeObj); 443 444 // C++: void cv::MSER::setMaxVariation(double maxVariation) 445 private static native void setMaxVariation_0(long nativeObj, double maxVariation); 446 447 // C++: double cv::MSER::getMaxVariation() 448 private static native double getMaxVariation_0(long nativeObj); 449 450 // C++: void cv::MSER::setMinDiversity(double minDiversity) 451 private static native void setMinDiversity_0(long nativeObj, double minDiversity); 452 453 // C++: double cv::MSER::getMinDiversity() 454 private static native double getMinDiversity_0(long nativeObj); 455 456 // C++: void cv::MSER::setMaxEvolution(int maxEvolution) 457 private static native void setMaxEvolution_0(long nativeObj, int maxEvolution); 458 459 // C++: int cv::MSER::getMaxEvolution() 460 private static native int getMaxEvolution_0(long nativeObj); 461 462 // C++: void cv::MSER::setAreaThreshold(double areaThreshold) 463 private static native void setAreaThreshold_0(long nativeObj, double areaThreshold); 464 465 // C++: double cv::MSER::getAreaThreshold() 466 private static native double getAreaThreshold_0(long nativeObj); 467 468 // C++: void cv::MSER::setMinMargin(double min_margin) 469 private static native void setMinMargin_0(long nativeObj, double min_margin); 470 471 // C++: double cv::MSER::getMinMargin() 472 private static native double getMinMargin_0(long nativeObj); 473 474 // C++: void cv::MSER::setEdgeBlurSize(int edge_blur_size) 475 private static native void setEdgeBlurSize_0(long nativeObj, int edge_blur_size); 476 477 // C++: int cv::MSER::getEdgeBlurSize() 478 private static native int getEdgeBlurSize_0(long nativeObj); 479 480 // C++: void cv::MSER::setPass2Only(bool f) 481 private static native void setPass2Only_0(long nativeObj, boolean f); 482 483 // C++: bool cv::MSER::getPass2Only() 484 private static native boolean getPass2Only_0(long nativeObj); 485 486 // C++: String cv::MSER::getDefaultName() 487 private static native String getDefaultName_0(long nativeObj); 488 489 // native support for java finalize() 490 private static native void delete(long nativeObj); 491 492}