【问题标题】:Region growing with the watershed transform区域随着分水岭变换而增长
【发布时间】:2021-09-02 03:04:20
【问题描述】:

我正在通过 adfoucart 尝试使用分水岭变换进行区域增长的代码,但在识别图像的标记时遇到了一些错误。

from skimage.filters import rank,gaussian
from skimage.morphology import disk
from skimage.feature import peak_local_max

def get_markers(img2, indices=False):
    im_ = gaussian(img2, sigma=4)
    gradr = rank.gradient(im_[:,:,0],disk(5)).astype('int')
    gradg = rank.gradient(im_[:,:,1],disk(5)).astype('int')
    gradb = rank.gradient(im_[:,:,2],disk(5)).astype('int')
    grad = gradr+gradg+gradb
    
    return peak_local_max(grad.max()-grad,threshold_rel=0.5, min_distance=60,indices=indices),grad

markers,grad = get_markers(img2, True)
plt.figure()
plt.imshow(grad, cmap=plt.cm.gray)
plt.plot(markers[:,1],markers[:,0],'b+')
plt.show()

我收到此错误。

IndexError                                Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_17316/2204442073.py in <module>
     12     return peak_local_max(grad.max()-grad,threshold_rel=0.5, min_distance=60,indices=indices),grad
     13 
---> 14 markers,grad = get_markers(img2, True)
     15 plt.figure()
     16 plt.imshow(grad, cmap=plt.cm.gray)

~\AppData\Local\Temp/ipykernel_17316/2204442073.py in get_markers(img2, indices)
      5 def get_markers(img2, indices=False):
      6     im_ = gaussian(img2, sigma=4)
----> 7     gradr = rank.gradient(im_[:,:,0],disk(5)).astype('int')
      8     gradg = rank.gradient(im_[:,:,1],disk(5)).astype('int')
      9     gradb = rank.gradient(im_[:,:,2],disk(5)).astype('int')

IndexError: too many indices for array: array is 2-dimensional, but 3 were indexed

感谢您的任何帮助!

【问题讨论】:

    标签: computer-vision watershed


    【解决方案1】:

    您可能正尝试在只有 2 个维度(高度和宽度)的灰度图像上运行代码,而编写的代码期望具有 3 个维度(高度、宽度和颜色通道)的 RGB 图像。

    在灰度图像上,线条:

    gradr = rank.gradient(im_[:,:,0],disk(5)).astype('int')
    gradg = rank.gradient(im_[:,:,1],disk(5)).astype('int')
    gradb = rank.gradient(im_[:,:,2],disk(5)).astype('int')
    grad = gradr+gradg+gradb
    

    可以简单地替换为:

    grad = rank.gradient(im_, disk(5))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 2012-07-31
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多