2

我可以为图像指定超像素及其属性。

  L = superpixels(A, 200);
    K=regionprops(L, 'PixelIdxList');

我知道每个超像素的平均强度值可以指定如下:

K=regionprops(L, 'MeanIntensity')

问题是如何指定超像素内所有像素的值?

4

1 回答 1

1

获取每个标签内所有像素值列表的语法是K = regionprops(L, A, 'PixelValues'). 但这仅适用于 gray-value A

最简单的解决方案是遍历通道,并为每个通道调用上述函数:

A = imread('~/tmp/boat.tiff'); % whatever RGB image
L = superpixels(A, 200);

n = size(A,3); % number of channels, typically 3
K = cell(max(L(:)),n);
for ii=1:n
   tmp = regionprops(L, A(:,:,ii), 'PixelValues');
   K(:,ii) = {tmp.PixelValues};
end

我们现在有一个K包含每个标记像素值的元胞数组:K{lab,1}是标记为 的像素值的集合lab,用于第一个通道。

以下代码将每个像素的组件整理到一个数组中:

K2 = cell(size(K,1),1);
for ii=1:numel(K2)
   K2{ii} = [K{ii,:}];
end

现在K2包含数据的 RGB 数组:K{lab}是一个 Nx3 矩阵,其中标记为 的 N 个像素中的每个像素都有 RGB 值lab

于 2019-02-14T16:36:27.103 回答