Fast Rotational Rect ROI , Donut ROI, Contour based blob detection

Warning: I’m not good at English

Hi opencv community??
I made Fast Rotational Rect and Donut ROI also contour based blob detection
(Not just rotation image and crop, it provide pixel locations sequentially)
You can also adjust pixel gap each row and column
I want to contribute these codes to opencv. How can I do that?

Source code and library link :

Other libraries used : simd, eigen3

Performance :

Name fps
fast::fastRect (500x500 roi size) 2100 fps
fast::fastRect (1000x1000 roi size) 550 fps
fast::fastRect (2000x2000 roi size) 35 fps
Name fps
fast::fastDonut (800 radius) 3560 fps
fast::fastDonut (1500 radius) 666 fps
Name fps
fast::fastBlob (video 1920x1080) 15~20ms elapse time
fast::fastBlob(blobFill) (video 1920x1080) Unknown

Demo (Very fast blob detection):

Hi @BongHoe_Koo

Glad to know you are willing to contribute with this work.

OpenCV works different, you don’t add your algorithm to OpenCV, you can offer your help, there is a big TODO list for developers who want to contribute with some coding and testing.

well, opencv_contrib could be a start.

I don’t know how that works. perhaps open an issue first, show the code and what it does. then likely you will receive guidance on expected documentation, file structure, coding style, expected APIs, maybe test cases, how to get automatically generated python bindings, …


  • maybe you could explain a bit about the “use-case” of your library ?
    e.g. what would i want to do with fast::fastDonut() ?
    which problem would it solve ?

i took a closer look, but had a hard time to compile it, using mingw.

  • it needs c++17 support, is that absolutely nessecary ?
  • make it as portable as possible (must run on linux/g++, apple/clang, android, etc)
  • do you really need Eigen for a simple 2d transform ?
  • what happens if there is no SIMD support ?
  • do you have any links / papers explaining the algorithms used ?