Skip to content

shibatch/rectdetect

Repository files navigation

Rectangle Detector

This is a demo program for a method for realtime rectangle detection from an image. This program detects ALL rectangular shapes viewed from 3D perspective in real time, utilizing a GPU. The program is purely rule-based.

Download

Source code and compiled binary can be downloaded from https://github.com/shibatch/rectdetect/releases

Movies

See the following youtube videos to see some results.

Running demo programs

You need to set up OpenCL runtime in order to run the programs. A CPU device should work, but it is pretty slow.

The following programs will be built.

rect

This is a program for detecting rectangles in a still image.

Usage : ./rect <image file name> [device number] [output file name]

Available OpenCL devices and their numbers are displayed if you execute the program without any arguments.

poly

This is a program for converting edges in the image to polyline. The result is written to output.png.

Usage : ./poly <image file name> [device number]

vidrect

This is a program for detecting rectangles from a video.

Usage : ./vidrect [device number] [input video file] [output video file] [Horizontal AOV]

You can use camera as input. In that case, specify the camera by cam:,, as an input. Output can be displayed on an window by specifying - as an output.

The following command line captures the video from the first camera in 1280x720 resolution and output is shown in the window.

./vidrect 0 cam:0,1280,720 - 72

The following command line captures the video from input.mpg and output to output.mpg.

./vidrect 0 input.mpg output.mpg 72

vidpoly

This is a program for converting edges in the video to polyline.

Build

Please use cmake to build the program.

$ cd rectdetect-X.XX
$ mkdir build
$ cd build
$ cmake ..
$ make
D:\rectdetect-X.XX> mkdir build & cd build
D:\rectdetect-X.XX> cmake -G"Visual Studio 15 2017 Win64" ..
D:\rectdetect-X.XX> cmake --build . --config Release

In order to build the program with Microsoft Visual Studio, you need to edit the CMakeLists.txt.

License

This software is distributed under the MIT license.