Eu estava percorrendo algumas respostas do mesmo problema e recebi as seguintes
C = num2cell(YourImage);
C(~YourImage) = {{}};
Isso deve fornecer uma matriz de células na qual existam células vazias ("nada") onde o plano de fundo estava e as células contendo 1 onde estava o primeiro plano.
imagesc(YourImage, "AlphaData", YourImage)
colormap(gray)
set(gca, "color", "none")
para definir a região de interesse visível, eu tentei por mim mesmo e não obtive um resultado, o que estou fazendo errado e a maneira correta de usar este código.
Exemplo de imagem com fundo preto:
Respostas:
0 para resposta № 1O snippet a seguir extrai a média do canal vermelho com o segundo plano removido:
>> I = imread("https://i.stack.imgur.com/mI75C.png");
>> mask = rgb2gray(I) > 0;
>> red = I(:, :, 1);
>> red_avg = mean(red(:))
red_avg =
48.0807
>> red_avg_br = mean(red(mask))
red_avg_br =
192.3833