我希望我的图像看起来像这样。
No Spots Appearing in Purple Region
但是,我的图像看起来像这样,有时应该在“轮廓线”区域出现白色斑点。
基本上,我编码了图像Eroded的侵蚀版本以及膨胀版本Dilated。如果您想查看这两个版本的代码,请告诉我,我将其添加。
我的目标是使侵蚀图像中的白色区域变为紫色,并将这些紫色侵蚀的字母/数字放入膨胀的字母/数字的内部。 一个通道功能仅显示给定图像的指定R / G / B通道。
def outline():
red,green,blue = range(3)
imgD = dilation(chars,7,20,480)
imgE = erosion(chars,7,20,480)
imgDOr = imgD.copy()
imgDcop = onechannel(imgD,0)
imgDcop[:,:,0] = 128
imgEcop = onechannel(imgE,2)
imgEcop[:,:,2] = 128
for i in range (0,len(imgD)):
for j in range (0,len(imgD[0])):
if imgE[i,j,0] == 255:
imgDOr[i,j,0] = imgDcop[i,j,0]
imgDOr[i,j,1] = imgDcop[i,j,1]
imgDOr[i,j,2] = imgEcop[i,j,2]
imageshow(imgDOr)
print(outline())
答案 0 :(得分:0)
这是您的erosion
函数中的一个错误,它没有将白色像素设置为255,255,255
。如果检查发布的侵蚀图像的RGB,您将看到白色区域的第一个通道的值在250到255之间,灰色边缘从239,239,239
开始。您需要修复erosion
函数以将所有白色区域严格设置为绝对255,255,255
,或者将outline
函数中的条件从if imgE[i,j,0] == 255:
放宽到{{1} }。