我可以为图像和它们的属性指定超像素。
L = superpixels(A, 200);
K=regionprops(L, 'PixelIdxList');我知道每个超像素的平均强度值可指定如下:
K=regionprops(L, 'MeanIntensity')问题是如何能够指定一个超像素内所有像素的值?
发布于 2019-02-14 16:36:27
获取每个标签中所有像素值的列表的语法是K = regionprops(L, A, 'PixelValues')。但这只适用于灰色值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。
https://stackoverflow.com/questions/54678368
复制相似问题