我有一个带有肋骨的推车的二进制阈值图像,其中一些已破裂。
我需要使用 cv2.distanceTransform() 之类的东西来获取分水岭算法的标记,但我需要消除裂缝。如果我保持裂缝,距离变换会将我的肋骨分成几块
我尝试关闭扩张,但它会影响肋骨之间的球而且我没有让每根肋骨分开
当然,我在距离变换图像中尝试了不同的阈值,但是当我按阈值过滤球时,我也分裂了肋骨。
有没有像bay-removing算法这样的东西?或者有什么更好的方法吗?
我有一个带有肋骨的推车的二进制阈值图像,其中一些已破裂。
我需要使用 cv2.distanceTransform() 之类的东西来获取分水岭算法的标记,但我需要消除裂缝。如果我保持裂缝,距离变换会将我的肋骨分成几块
我尝试关闭扩张,但它会影响肋骨之间的球而且我没有让每根肋骨分开
当然,我在距离变换图像中尝试了不同的阈值,但是当我按阈值过滤球时,我也分裂了肋骨。
有没有像bay-removing算法这样的东西?或者有什么更好的方法吗?
尝试使用垂直矩形内核的 cv::dilate 方法。
创建一个寻找周围像素(主要是垂直像素)的过滤器来决定中心像素应该是什么颜色。一个
//psudo code
for(int x=0;x<maxdimensionX;x++)
{
for (int y = 0 ;y<maxdimensionY;y++)
{
c1= max(y-scope,0)
c2 = min(y+scope,maxdimenionY)
for (int c=c1;c<c2;c++)
{
color[c]=colorresult(x,y)
if( color[c]==mysearchcolor)count++
}
if (count>treshold) set in a new picture pixel(x,y,mysearchcolor)else make it a background pixel.