码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python提取指定颜色区域并填充闭合区间


    (这两天让医生标图,对病灶进行分割标注,结果所有图都是在原图上画的红线,所以需要自己另外生成对应的mask)

    算法目标

    筛选出图像中的红色区域生成一张带有边界的二值图,对闭合区间内的数值进行填充;

                       (输入)                                            (输出)

    实现程序

    1. import cv2
    2. import numpy as np
    3. def find_specific_color(img, pixel_rgb):
    4. # 找到指定颜色,其他颜色设置为背景
    5. mask = np.zeros((img.shape[0], img.shape[1]), np.uint8)
    6. for row in range(img.shape[0]):
    7. for col in range(img.shape[1]):
    8. r=img[row, col, 0]
    9. g=img[row, col, 1]
    10. b=img[row, col, 2]
    11. if([r,g,b]==pixel_rgb):
    12. mask[row][col]=255
    13. else:
    14. mask[row][col]=0
    15. return mask
    16. def flood_fill(img_closed_loop):
    17. # 找出图像中的闭合区间,对内部进行填充
    18. im_floodfill = img_closed_loop.copy()
    19. mask = np.zeros((img_closed_loop.shape[0]+2, img_closed_loop.shape[1]+2), np.uint8)
    20. cv2.floodFill(im_floodfill, mask, (0, 0), 255)
    21. im_floodfill_inv = cv2.bitwise_not(im_floodfill)
    22. im_out = img_closed_loop | im_floodfill_inv
    23. return im_out
    24. if __name__ == '__main__':
    25. img = cv2.imread('1.png')
    26. img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # cv2读取图像的通道为BGR需要进行转换
    27. mask = find_specific_color(img, [255, 0, 0]) # 设置需要找到的颜色RGB值,[255,0,0]表示红色
    28. mask = flood_fill(mask)
    29. cv2.imwrite('res.png', mask)

  • 相关阅读:
    java学习之spring基础
    SQL刷题查漏补缺6
    UE5实战篇二(对话系统1):导语
    var、let、const声明变量和不用var声明变量的区别
    Spring 官方建议的在 Spring Boot 应用中如何做单元测试
    QGIS 捕捉
    翻译: Transformer一种用于语言理解的新型神经网络架构 Google AI
    卷积神经网络卷积层池化层全连接层理解
    如何保卫您的网站:解决DDoS攻击与CC攻击
    C++语言的广泛应用领域
  • 原文地址:https://blog.csdn.net/qq_29600137/article/details/127672032
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号