首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含轮廓的图像中出现的白点

包含轮廓的图像中出现的白点
EN

Stack Overflow用户
提问于 2018-12-14 08:47:36
回答 1查看 38关注 0票数 0

我希望我的形象像这样。

紫色区域无斑点

然而,我的照片是这样的,白点有时会出现在应该被“勾画”的区域。

斑点出现

基本上,我编写了图像侵蚀性的侵蚀版和扩展版扩容。如果您想看到这两个版本的代码,请让我知道,我会添加它。

我的目标是使被侵蚀的图像中的白色区域变成紫色,并将这些紫色侵蚀的字母/数字放在膨胀的字母/数字中。函数只显示给定图像的指定R/G/B通道。

代码语言:javascript
复制
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())
EN

回答 1

Stack Overflow用户

发布于 2018-12-14 16:36:16

这是erosion函数中的一个bug,它没有将白色像素设置为255,255,255。如果您查看发布的侵蚀图像的RGB,您将看到白色区域的第一个通道的值在250到255之间,灰色边缘是从239,239,239开始的。您需要修复erosion函数,严格地将所有空白区域设置为绝对255,255,255,或者将outline函数中的条件从if imgE[i,j,0] == 255:放宽到类似if 255 - imgE[i,j,0] <= 16:的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53776209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档