Ask Your Question

Florian Castellane's profile - activity

2015-04-01 10:38:12 -0600 received badge  Editor (source)
2015-03-31 02:57:35 -0600 answered a question Pattern Matching (specific question)

You may want to look at pattern matching. Techniques using the Fourier-Mellin Transform are invariant to scale and rotation, so they do what you're looking for, but computing said transform can be quite expensive (more than the Fourier transform of the whole image). Alternatively, since the pattern you look for is quite simple, you could look for the half-circle and the lines separately, and then put it all together using the positions.

Since your question is not completely specific to OpenCV, you might want to ask on Stack Exchange as well: http://dsp.stackexchange.com/

Hope this helps.

2015-03-31 02:44:28 -0600 asked a question Running the Canny filter on the GPU (error: ‘Canny’ is not a member of ‘cv::gpu’)

Hello all,

I am using OpenCV 2.4.9 with Cuda support on Funtoo Linux (installed via Portage).

Here is the offending method:

cv::gpu::GpuMat edgesR;
cv::gpu::GpuMat img;
img.create(getN(), getM(), CV_8UC1);
cv::gpu::Canny(img, edgesR, 120.0, 30.0, 3);

While compiling a project made with a former version of OpenCV, the compiler tells me

error: ‘Canny’ is not a member of ‘cv::gpu’

AFAIK this means the compiler couldn't find the relevant function. It then tells me I might want to use cv::Canny instead.

I see that in OpenCV 3, cv::gpu:: will be moved to cv::cuda::. However, I'm using 2.4.9, so I assume that's not related. I read the online documentation, and I can see Canny in cv::gpu::, so I'm not sure what's wrong here: http://docs.opencv.org/modules/gpu/doc/image_processing.html?highlight=gpu%20canny#gpu-canny

How can I use the Cuda GPGPU version of the Canny filter in OpenCV?

I'm going to use the CPU version cv::Canny instead, since it seems I can't use cv::gpu::Canny. Does this one automagically use CUDA if available?

EDIT: Turns out using cv::Canny instead of cv::gpu::Canny throws an assert error:

openCV Error: Assertion failed (k == STD_VECTOR_MAT) in getMat, file /var/tmp/portage/media-libs/opencv-2.4.9/work/opencv-2.4.9/modules/core/src/matrix.cpp, line 988
terminate called after throwing an instance of 'cv::Exception'
  what():  /var/tmp/portage/media-libs/opencv-2.4.9/work/opencv-2.4.9/modules/core/src/matrix.cpp:988: error: (-215) k == STD_VECTOR_MAT in function getMat

Best regards.