- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
python中的label2idx()
函数有库实现吗?
我希望从标签表示中提取超像素到 label2idx()
函数返回的格式。
label2idx 函数:https://in.mathworks.com/help/images/ref/label2idx.html
最佳答案
给定一个标签数组 label_arr
,其中包含从 1
到 max(label_arr)
的所有标签,您可以:
def label2idx(label_arr):
return [
np.where(label_arr.ravel() == i)[0]
for i in range(1, np.max(label_arr) + 1)]
如果您想放宽包含所有标签的要求,您可以添加一个简单的 if
,即:
def label2idx(label_arr):
return [
np.where(label_arr.ravel() == i)[0]
if i in label_arr else np.array([], dtype=int)
for i in range(1, np.max(label_arr) + 1)]
只是为了复制 MATLAB 文档中的示例:
import numpy as np
import scipy as sp
import scipy.ndimage
struct_arr = np.array(
[[1, 1, 1, 0, 0, 0, 0, 0],
[1, 1, 1, 0, 1, 1, 0, 0],
[1, 1, 1, 0, 1, 1, 0, 0],
[1, 1, 1, 0, 0, 0, 0, 0],
[1, 1, 1, 0, 0, 0, 1, 0],
[1, 1, 1, 0, 0, 0, 1, 0],
[1, 1, 1, 0, 0, 1, 1, 0],
[1, 1, 1, 0, 0, 0, 0, 0]])
label_arr, num_labels = sp.ndimage.label(struct_arr)
# label_arr:
# [[1 1 1 0 0 0 0 0]
# [1 1 1 0 2 2 0 0]
# [1 1 1 0 2 2 0 0]
# [1 1 1 0 0 0 0 0]
# [1 1 1 0 0 0 3 0]
# [1 1 1 0 0 0 3 0]
# [1 1 1 0 0 3 3 0]
# [1 1 1 0 0 0 0 0]]
def label2idx(label_arr):
return [
np.where(label_arr.ravel() == i)[0]
for i in range(1, np.max(label_arr) + 1)]
pixel_idxs = label2idx(label_arr)
for pixel_idx in pixel_idxs:
print(pixel_idx)
# [ 0 1 2 8 9 10 16 17 18 24 25 26 32 33 34 40 41 42 48 49 50 56 57 58]
# [12 13 20 21]
# [38 46 53 54]
请注意,由于 MATLAB 和 NumPy 之间的差异,您不会得到完全相同的结果,特别是:
如果您想获得与在 MATLAB 中获得的数字完全相同的数字,您可以改用它(注意额外的 .T
和 + 1
):
def label2idx_MATLAB(label_arr):
return [
np.where(label_arr.T.ravel() == i)[0] + 1
for i in range(1, np.max(label_arr) + 1)]
关于Python 相当于 label2idx MATLAB 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56750400/
假设数组中的所有元素的值都不同于 undefined , null或0 ,是 if (idx < arr.length)相当于if (arr[idx]) ? 最佳答案 没有。 还有其他falsy if
假设数组中的所有元素的值都不同于 undefined , null或0 ,是 if (idx < arr.length)相当于if (arr[idx]) ? 最佳答案 没有。 还有其他falsy if
我试图使用 selenium 下载文件,例如: ftp://ftp.sec.gov/edgar/full-index/1993/QTR1/form.idx ftp://ftp.sec.gov/edga
似乎普遍认为使用 np.take 比数组索引要快得多。例如http://wesmckinney.com/blog/numpy-indexing-peculiarities/ , Fast numpy
对于挑战,a fellow code golfer wrote the following code : import java.util.*; public class Main { publi
这个问题在这里已经有了答案: Iterate over defined elements of a JS array (7 个答案) 关闭 3 年前。 我是编码新手,这种情况对我来说是个大问题。我正
我正在尝试执行 postgresql 查询,但出现语法错误。查询是: c.execute("CREATE TABLE smaller_coverage " "AS (SELECT dono
我读了这个here ,我正在创建一个房地产网站。我熟悉 PHP 和 MySQL,也准备好编写脚本,但真的找不到任何开始。我想编写一个 PHP 脚本,通过来自他的 MLS 公司的 FTP Zip 文件每
特征 RandomAccessIterator 定义了以下函数: fn idx(&mut self, index: uint) -> Option; 由于 self 是可变的,我希望调用 idx()
(在我开始之前,让我们假设这是一个面试问题,我的目的是避免仅仅调用 sorted。) 我有这段有效的 Python 代码: def merge_sorted_lists(left, right):
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭去年。 Im
我有一个用 delphi 编写的应用程序,它是最近的,在 win32 上运行我想用 odbc 连接到数据库,但我不确定要使用哪个数据库驱动程序 数据库所在的目录有.dat.idx每个表的文件 它是一个
我正在编写一些代码,以在 24 小时内每分钟创建并运行 18000 个测试,并将结果存储在我可以做到的 .dat 文件中。 我的下一个任务是在每小时开始时获取时间戳、设备 ID 和随机测试 ID 并将
我正在 MySql Workbench 上工作,每次重命名表/列时,现有的 FK 和 IDX 名称都不会更改。我最终得到了一个所有 FK/IDX 名称都困惑的模型。有没有办法根据新的表和列名称重新生成
我正在 requests.get() 获取一些 json。之后,我想将数据插入到 postgresql 中。发生了一些非常有趣的事情,如果我使用 df.to_sql(index=False),数据毫无
在 Rust 1.14 中,Index trait定义如下: pub trait Index where Idx: ?Sized { type Output: ?Sized; fn i
我正在为一个主要网站实现 WCAG 可访问性报告。可以预见,反复出现的问题之一是表单中的标签。 直到现在,我一直认为将表单标签与其元素相关联的正确方法是在标签的表单属性中使用输入元素的名称,如下所示:
Node.js puppeteer - 下载并打开 .idx 文件 我正在使用 node.js 和 puppeteer 来获取一些数据。我可以单击/下载 .idx 文件...但是如何打开它并处理数据?
我正在运行一个程序: 创建一个ArrayList 在这个数组的顶部添加一些元素 创建一个将减少的“基础”元素 然后使用 for 循环减少基元素并将其添加到数组的顶部(索引 0) 没想到我得到的输出是可
在 Windows Server 2008 上运行的 ASP.NET C# 应用 我发现 Git .idx 和 .pack 文件对编程删除特别有抵抗力: C:\github\my-org\my-rep
我是一名优秀的程序员,十分优秀!