zebra - 7 months ago 50

C++ Question

Using the newest OpenCV, is there an easy way to compute the gradient image of a specific cv::Mat?

Answer

Assuming you are referring to the typical image gradient; you can compute these quite easily with the Sobel operator as mentioned by Chris. Have a look at the Sobel Derivatives tutorial here. You may also be interested in the Laplace operator, and its tutorial.

Here is a short snippet of computing the X and Y gradients using Sobel:

```
cv::Mat src = ...; // Fill the input somehow.
cv::Mat Dx;
cv::Sobel(src, Dx, CV_64F, 1, 0, 3);
cv::Mat Dy;
cv::Sobel(src, Dy, CV_64F, 0, 1, 3);
```

Source (Stackoverflow)