zoukankan      html  css  js  c++  java
  • 皮肤镜图片毛发去除

    1 皮肤镜毛发去除的目的

    根据皮肤镜图片对皮肤病变种类进行分类是一个常规的研究话题,在深度学习时代,会将标注好的数据进行训练,学习皮肤病变的特征,而图片中常常会有毛发干扰,这是我们不需要的特征,也不希望网络学习到这个特征,因此在数据预处理阶段,可以使用一些传统图像处理算法对图像进行处理。

    2 方法

    • 首先将图像转为灰度
    • 定义一个十字的kernel,对灰度图进行黑帽(形态学)操作
    • 利用阈值分割得到mask
    • 利用opencv的inpaint方法对图像修复

    3 代码

    import cv2
    def DHR(imgpath,outpath):
        
        src = cv2.imread(imgpath)
        grayScale = cv2.cvtColor(src, cv2.COLOR_RGB2GRAY )
        cv2.imwrite("grey.jpg",grayScale)
        kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(10,10))
        blackhat = cv2.morphologyEx(grayScale, cv2.MORPH_BLACKHAT, kernel)
        cv2.imwrite("blackhat.jpg",blackhat)
        ret,thresh2 = cv2.threshold(blackhat,10,255,cv2.THRESH_BINARY)
        cv2.imwrite("threshold.jpg",thresh2)
        dst = cv2.inpaint(src,thresh2,1,cv2.INPAINT_TELEA)
        cv2.imwrite(outpath, dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
    

    4 结果

    依次是原图、灰度图、黑帽操作、mask、利用mask图像修复

  • 相关阅读:
    HashMap put get 源码解析
    HashMap 源码
    配置spring boot请求的入参和出参json数据格式
    配置idea的注释模板
    基本数据类型
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
  • 原文地址:https://www.cnblogs.com/WAoyu/p/12089192.html
Copyright © 2011-2022 走看看