python - Python中的MATLAB超像素函数?
问题描述
我正在寻找像 MATLAB 的超像素这样的函数。它会做接下来的事情:
[L,NumLabels] = superpixels(A,N)
计算二维灰度或 RGB 图像 A 的超像素。N 指定要创建的超像素的数量。该函数返回 L,一个 double 类型的标签矩阵,和 NumLabels,计算的实际超像素数。
问题是这是来自我正在翻译成 Python 的 MATLAB 函数:
function [llave_pixelada] = segmentacion(I,rsize,Spixel)
I_reducida = imresize(I,rsize);
[nfila,ncolum,~]=size(I_reducida);
[LSP,N] = superpixels(I_reducida,Spixel);
llave_pixelada = zeros(size(I_reducida),'like',I_reducida);
idx = label2idx(LSP);
for labelVal = 1:N
redIdx = idx{labelVal};
greenIdx = idx{labelVal}+nfila*ncolum;
blueIdx = idx{labelVal}+2*nfila*ncolum;
llave_pixelada(redIdx) = mean(I_reducida(redIdx));
llave_pixelada(greenIdx) = mean(I_reducida(greenIdx));
llave_pixelada(blueIdx) = mean(I_reducida(blueIdx));
end
end
这将图像 I 分段,缩放到 rsize,区域数量为 Spixels。MATLAB 的超像素返回一个标签矩阵,该函数稍后使用该函数对 idx 区域进行分组,结果是像素化图像(在给定的超像素数量 Spixels 的函数中)。
所以我想知道,如果没有类似 MATLAB 的 superpixel 函数,或者另一方面,类似于 MATLAB 的 superpixel 的函数可以做到这一点,是否可以减少上面的代码。
在此先感谢,我真的很感激。
(如果你想试试 MATLAB 的代码,rsize 从 0 到 1)。
解决方案
推荐阅读
- node.js - 我应该将相关实体放在同一个模块中吗?
- java - 当单词的第一个字母大写时从字符串中删除单词
- c - 负值与 rdi 寄存器的比较结果不正确
- jenkins - Docker Container 和 Google Cloud Source Repository 中的 Jenkins - 没有可见的凭据
- reactjs - Reactjs模式表单验证不返回错误消息
- c# - 为什么这个 ASP.NET 方法会阻塞,什么时候应该是异步的?
- python - 在多处理池中共享大对象
- javascript - JavaScript:如何使用事件委托获取子元素“i”类名?
- javascript - 防止 Atom Beautify 自动格式化 es6 导入/对象解构 (React)
- javascript - 使用vue-router,为什么我的组件加载不出来