Different implementation of HoughLinesP on GPU and CPU

asked 2015-09-25 04:38:36 -0500

boil gravatar image


I am supposed to port an app to GPU. The app makes extensive use of OpenCV (opencv4tegra). I noticed that HoughLinesP doesn't have the same prototype on CPU and GPU. For example the CPU prototype is this:

CV_EXPORTS_W void HoughLinesP( InputArray image, OutputArray lines,
                           double rho, double theta, int threshold,
                           double minLineLength=0, double maxLineGap=0 );

The GPU implementation has this prototype:

CV_EXPORTS void HoughLinesP(const GpuMat& image, GpuMat& lines, HoughLinesBuf& buf, float rho, float theta, int minLineLength, int maxLineGap, int maxLines = 4096);

The threshold parameter is missing from GPU implementation and because of this I get different results for the same image. Is there an explanation why CPU and GPU functions are not the same? Also why is there no support for streams for HoughLinesP on GPU ?

edit retag flag offensive close merge delete