I've detected contours for an image using opencv python,now I should blackout the image outside the contour.Could anyone help me to do this?

解决方案

Given your found contours, use drawContours to create a binary mask, in which your contours are filled. Dependent on how you do that (black image, white contours vs. white image, black contours), you set all pixels in your input image to 0 expect for the masked (or unmasked) ones. See the following code snippet for a visualization:

import cv2

import numpy as np

# Artificial input

input = np.uint8(128 * np.ones((200, 100, 3)))

cv2.rectangle(input, (10, 10), (40, 60), (255, 240, 172), cv2.FILLED)

cv2.circle(input, (70, 100), 20, (172, 172, 255), cv2.FILLED)

# Input to grayscale

gray = cv2.cvtColor(input, cv2.COLOR_RGB2GRAY)

# Simple binary threshold

_, gray = cv2.threshold(gray, 128, 255, cv2.THRESH_BINARY)

# Find contours

cnts, _ = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

# Generate mask

mask = np.ones(gray.shape)

mask = cv2.drawContours(mask, cnts, -1, 0, cv2.FILLED)

# Generate output

output = input.copy()

output[mask.astype(np.bool), :] = 0

cv2.imwrite("images/input.png", input)

cv2.imwrite("images/mask.png", np.uint8(255 * mask))

cv2.imwrite("images/output.png", output)

The artificial input image:

The mask generated during processing:

The final output:

python运行界面黑色_在Python中使用open执行轮廓检测后,如何使图像的背景变黑?...相关推荐

  1. python运行界面黑色,在Python中使用open执行轮廓检测后,如何使图像的背景变黑?...

    I've detected contours for an image using opencv python,now I should blackout the image outside the ...

  2. python 运行程序代码_一些python程序

    <从问题到程序:用Python学编程和计算>--1.2 Python语言简介 本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 ...

  3. python运行excel宏_从python运行excel宏

    我正在使用以下代码从Python运行Excel宏: import pymysql import datetime import csv import math import os import glo ...

  4. python运行界面黑色_selenium+python 去除启动的黑色cmd窗口方法

    其实 selenium启动窗口的时候就是 使用了subprocess.Popen 启动的驱动程序的,只要在启动的时候加上启动不显示窗口的参数即可. 下面魔改开始O(∩_∩)O哈哈~ 修改代码 位于D: ...

  5. python 运行部分代码_改改Python代码,运行速度还能提升6万倍

    如果摩尔定律注定终结,人类的算力会被「锁死」吗?MIT.英伟达.微软研究者合著的一篇 Science 论文告诉我们:不会. 这份最新研究指出,在后摩尔定律时代,人类所获得的的算力提升将更大程度上来源于 ...

  6. python闹钟界面程序_「Python编程」自由管理时间之编写一个小闹钟起床

    Python_时间管理 代码中的时间时间戳(Timestamp):1473525444 时间字符串(Format String):2015-02-14 11:25:11 结构化时间:(struct_t ...

  7. python保存运行结果下次使用_将python运行结果保存至本地文件中的示例讲解

    一.建立文件,保存数据 1.使用python中内置的open函数 打开txt文件 #mode 模式 #w 只能操作写入 r 只能读取 a 向文件追加 #w+ 可读可写 r+可读可写 a+可读可追加 # ...

  8. python为什么运行不了_为什么python运行效率低?原来因为它!

    1. python是动态语言 动态语言是一类在运行时可以改变其结构的语言,如新的函数.对象.代码可以被引入,已有的函数可以被删除或其他结构上的变化等,该类语言更具有活性,但是不可避免的因为运行时的不确 ...

  9. opencv检测图片失焦 python_如何在Python中使用OpenCV执行模糊检测

    如何在Python中使用OpenCV执行模糊检测 目标检测 最后更新 2020-10-12 14:23 阅读 154 最后更新 2020-10-12 14:23 阅读 154 目标检测 ##FlyAI ...

最新文章

  1. C#转换人民币大写金额
  2. linux c 获取 进程 线程 id
  3. python turtle基本语法_Python 基础语法-turtle篇
  4. 为什么很多招聘信息都要求三年以上的工作经验?
  5. 无法定位程序输入点 _ZdaPvj 于动态链接库 libstdc++-6.dll
  6. linux启动mqtt_linux下安装MQTT服务器 - EMQTT
  7. 吉林省计算机科学与技术专业测评,我校计算机科学与技术、英语两个专业在吉林省专业综合评价中获得可喜成绩...
  8. 移动应用可以通过微信沟通接口连接公众号 微信涨粉多了一个新通道
  9. C语言和设计模式(工厂模式)
  10. 结构型模式之组合模式
  11. 学术论文答辩通用PPT模板
  12. jpa方言的yml格式
  13. 代理模式实例与解析--实例一:论坛权限控制代理
  14. Centos6.x安装mysql5.6版本
  15. 中国科学技术大学计算机考研好考吗,中国科学技术大学计算机考研复习方法谈(2)...
  16. 【JavaScript算法】---希尔排序(转载自我的老师 Alley-巷子)
  17. 如何制作个人商业网站
  18. 烟雨PHP图床程序源码
  19. Python各种包学习
  20. 关于docker报错:No connection could be made because the target machine actively refused it.

热门文章

  1. Nginx学习---Nginx的详解_【all】
  2. 对Python的认识以及以及Python变量简单的数据类型总结
  3. redis简单使用1
  4. 如何使用融云地图,文件等插件--融云 Android SDK 2.8.0+ Extension 开发文档
  5. Android4.0源码目录结构详解
  6. [Python] Python 之 __new__() 方法与实例化
  7. Android高效加载大图、多图解决方案,有效避免程序内存溢出现象
  8. python中int函数是什么作用_python中int函数怎么用
  9. No module named ‘yaml‘错误解决办法
  10. WSL2开启sshd