python在没有opencv库的情况下,使用二进制形态学概念实现侵蚀功能和膨胀功能

这篇博客展示了如何用Python和OpenCV库实现图像处理中的膨胀与腐蚀操作。通过提供一个简单的模板并定义myDilate和myErode函数,作者演示了自定义实现与OpenCV内置函数的对比,验证了两者输出的一致性。
摘要由CSDN通过智能技术生成

如题所述,没找到理想答案,打了一个python的模板,请大佬参考一下(分类:OpenCV):

import cv2
import numpy as np


input = np.array([[1,0,0,0,0],
                  [1,0,0,0,1],
                  [0,1,0,1,0],
                  [0,0,1,0,0],
                  [0,0,1,1,0]],
                 np.float32)

se = np.array([[0,1,0],
               [1,1,1],
               [0,1,0]],
             np.uint8)


def myDilate(input, se):
    output = np.zeros(input.shape)
    for i, row in enumerate(input):
        for j, one in enumerate(row):
            # your code
            output[i][j] = input[i][j]

    return output

def myErode(input, se):
    output = np.zeros(input.shape)
    for i, row in enumerate(input):
        for j, one in enumerate(row):
            # your code
            output[i][j] = input[i][j]
    return output

output = myDilate(input, se)
cv_output = cv2.dilate(input, se, iterations=1)

print(output)
print(cv_output)

if(np.array_equal(output, cv_output)):
    print("Pass")

来源:https://www.ebaina.com/questions/100000031461

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值