擅长:python、mysql、java
<p>您可以计算大小,如下所示:</p>
<ol>
<li>计算<code>dx</code>和<code>dy</code>衍生物(使用<code>cv::Sobel</code>)</li>
<li>计算震级<code>sqrt(dx^2 + dy^2)</code>(使用<code>cv::magnitude</code>)</li>
</ol>
<P>这是一个计算梯度大小的简单C++代码。您可以轻松地移植到Python,因为只需调用几个OpenCV函数:</p>
<pre><code>#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
//Load image
Mat3b img = imread("path_to_image");
//Convert to grayscale
Mat1b gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
//Compute dx and dy derivatives
Mat1f dx, dy;
Sobel(gray, dx, CV_32F, 1, 0);
Sobel(gray, dy, CV_32F, 0, 1);
//Compute gradient
Mat1f magn;
magnitude(dx, dy, magn);
//Show gradient
imshow("Magnitude", magn);
waitKey();
return 0;
}
</code></pre>