cv2.connectedComponents 未检测到组件

2023-11-25

我使用的是 Ubuntu,python 2.7。使用 OpenCV。

我试图准确理解函数 cv2.connectedComponents 正在做什么。 这是图像:

enter image description here

代码:

import cv2
import numpy as np

img = cv2.imread('BN.tif', 0)

img = np.uint8(img)
_, markers = cv2.connectedComponents(img)
 

据我了解,该函数创建一个与提供的图像大小相同的数组。对于检测到的每个组件,为该组件的所有 (y,x) 位置分配相同的编号。如果背景全为“0”,则圆圈将全为“1”,下一个正方形全为“2”,依此类推。最后一个组件应全为“19”。我通过获取定义组件的最高数量来读取组件的数量:

np.amax(markers)

我应该得到 19,但我得到了 1。

我的问题:为什么我只得到 1 个组件?


这是因为cv2.connectedComponents()仅将白色部分视为一个组件。因此你得到的是一个单一的组件。

你必须反转你的形象。您可以通过使用来做到这一点cv2.bitwise_not()功能。

CODE:

import cv2
import numpy as np

img = cv2.imread('cc.png', 0)
ret, thresh = cv2.threshold(img, 127, 255, 0)

#---- Inverting the image here ----
img = cv2.bitwise_not(thresh)     
_, markers = cv2.connectedComponents(img)
print np.amax(markers)

RESULT:

19
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cv2.connectedComponents 未检测到组件 的相关文章

  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 如何使用 Selenium 和 ChromeDriver 解决 TypeError: 'module' object is not callable 错误 [重复]

    这个问题在这里已经有答案了 代码试验 from selenium import webdriver from selenium webdriver chrome options import Options as Chromeoptions
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 如何将自定义证书颁发机构(CA)添加到nodejs

    我正在使用 CLI 工具构建混合移动应用程序 该应用程序具有很酷的上传功能 因此我可以在设备上测试该应用程序 而无需通过应用程序商店 它是 ionic cli 然而 在我的公司中 像许多其他公司一样 TLS 请求是使用公司自己的自定义 CA
  • C++中如何访问类变量

    在c 中是否可以在不创建对象的情况下访问其他类中的类变量 我尝试使用静态 但另一个类无法识别我的变量 我有3节课 其中两个应该使用 sae 变量 在第三堂课中我正在改变价值观 如果您能提供帮助 我将不胜感激 也许你有一个例子 class M
  • 页面滚动后,jQuery 可拖动在错误的位置显示帮助程序

    我正在使用 jQuery可拖动的 and 可丢弃的对于我正在开发的工作计划系统 用户将作业拖到不同的日期或用户 然后使用 ajax 调用更新数据 一切工作正常 除了当我向下滚动主页时 工作出现在超出浏览器窗口底部的大型周计划表上 如果我尝试
  • 基于视图的 NSOutlineView 没有 NIB?

    NSOutlineView是一个子类NSTableView 而目前 NSTableView支持两种实现 基于细胞 基于视图 制作 OSX 10 8 Finder 风格的侧边栏 具有自动灰色图标样式 需要使用基于视图的表视图和源列表突出显示样
  • 如何从路径中提取每个文件夹名称?

    我的路径是 server folderName1 another name something another folder 如果我不知道路径中有多少个文件夹并且不知道文件夹名称 如何将每个文件夹名称提取到字符串中 非常感谢 string
  • 无法在 __init__.py django 1.9.4 中导入模型

    我的目录结构是 Mypack gt init py gt admin py gt apps py gt foo py gt models py 在 apps py 中 我有 AppConfig 我在 foo py 中有一些方法 它们使用从
  • EscapeUriString 和 EscapeDataString 有什么区别?

    如果只处理url编码 我应该使用转义Uri字符串 我对现有的答案不满意 所以我决定更深入地挖掘来解决这个问题 令人惊讶的是 答案非常简单 有 几乎 没有正当理由使用Uri EscapeUriString 如果您需要对字符串进行百分比编码 请
  • 使用 Google Cloud Key Management Service 签署 JSON Web 令牌

    编辑 我找到了答案 滚动到这个问题的底部 我正在开发 NodeJS 身份验证服务器 我想使用 google 签名来签署 JSON Web 令牌 JWT 我正在使用 Google Cloud 密钥管理服务 KMS 并创建了一个密钥环和一个非对
  • C# - 如何知道 Windows 启动后何时“稳定”?

    我正在编写一个应用程序 该应用程序可以选择在 Windows 启动时运行 我无法忍受应用程序在我的电脑真正稳定下来之前就陷入困境 而且这是一个非关键应用程序 我希望我的应用程序礼貌地等待所有其他启动项完成并解决 以便用户的电脑在开始执行任何
  • 使用 ASP.NET MVC 区域路由找不到错误 404

    我在 MVC 5 中遇到区域路由问题 当我浏览到 Evernote EvernoteAuth 时 出现 404 找不到资源错误 我的区域看起来像这样 Areas Evernote Controllers EvernoteAuthContro
  • nodejs hapi 单页

    我有一个应用程序站点 NodeJS 我想从 Express 迁移到 Hapi 我通常做的是提供静态文件并将其他所有内容路由到包含 angularjs 应用程序和 Angular 路由配置的单个页面 Express routing first
  • 两个 Python 模块需要彼此的内容 - 这可以吗?

    我有一个 Bottle 网络服务器模块 其中包含以下行 from foobar formtools import auto process form insert And the foobar formtools模块包含这一行 from f
  • 如何比较多行?

    我想比较两个连续的行i with i 1 of col2 排序col1 If item i of the i第 行和item i 1 row是不同的 我想增加计数item i 1 by 1 col1 col2 row 1 item 1 ro
  • 协作编辑 LaTeX 文档的技巧 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我的默认设置是将 tex 源放入 subversion 存储库中 并在更改其他人的内容时将注释作为源中的注释相互插入 这一切都感觉不太理想 尤其是当存在颠覆冲突时 它告诉你的只是
  • 除非使用 Leiningen REPL,否则 Clojure jdbc create-table 语句不会运行

    我有一个小型 Clojure 程序 它使用Clojure JDBC在 HSQL 数据库中创建表的工具 然而 如果我从 Leiningen 的 REPL 运行它 它似乎只会实际创建该表 如果我使用运行代码 它不会创建表lein run或从我的
  • Java + Eclipse:同步 stdout 和 stderr

    我使用Eclipse 当我有这样的应用程序时 write 20 times Hello World n to stdout write ERROR n to stderr write 5 times Hello World n to std
  • 如何配置Spring-Boot应用程序以继续使用RestEasy?

    我有一个旧的 Web 应用程序 纯 servlet 没有 Spring 我想将其作为 fat jar 运行 这个应用程序提供了很多REST服务 我不想修改旧代码 如何配置Spring Boot应用程序以继续使用RestEasy 您可以使用
  • 在 Tapestry 5 中更新表单内的区域

    我有一个Zone里面一个Form the Zone已更新为包含我想绑定到父级的输入字段的块Form 不幸的是 这似乎并不像我希望的那么容易 因为我收到了以下错误消息 The Description component must be enc
  • FireFox 位于“从...传输数据”或“读取...”

    我正在使用 Selenium 为网站构建一些功能测试 但我遇到了一个奇怪的浏览器问题 页面似乎永远无法完成加载 状态栏显示 正在从 传输数据 或 读取 由于页面永远不会完成加载 我的硒测试超时 该问题似乎只发生在 FireFox 上 我们的
  • cv2.connectedComponents 未检测到组件

    我使用的是 Ubuntu python 2 7 使用 OpenCV 我试图准确理解函数 cv2 connectedComponents 正在做什么 这是图像 代码 import cv2 import numpy as np img cv2