擅长:python、mysql、java
<p>这是我用你的图片得到的结果:<a href="https://i.stack.imgur.com/frmkx.png" rel="noreferrer"><img src="https://i.stack.imgur.com/frmkx.png" alt="enter image description here"/></a></p>
<p>我的方法主要是基于对放大图像应用的几个<code>cv::medianBlur</code>。</p>
<p>代码如下:</p>
<pre><code>cv::Mat vesselImage = cv::imread(filename); //the original image
cv::threshold(vesselImage, vesselImage, 125, 255, THRESH_BINARY);
cv::Mat blurredImage; //output of the algorithm
cv::pyrUp(vesselImage, blurredImage);
for (int i = 0; i < 15; i++)
cv::medianBlur(blurredImage, blurredImage, 7);
cv::pyrDown(blurredImage, blurredImage);
cv::threshold(blurredImage, blurredImage, 200, 255, THRESH_BINARY);
</code></pre>
<p>锯齿状的边缘是由于阈值。如果您对一个非二进制的输出图像(即256个灰度)感到满意,您可以删除它,然后得到这个图像:<a href="https://i.stack.imgur.com/4m2lx.png" rel="noreferrer"><img src="https://i.stack.imgur.com/4m2lx.png" alt="enter image description here"/></a></p>