Как добавить элемент в массив в MatLab? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь составить график яркости пикселя в зависимости от расстояния от центра этого пикселя. Для этого я использовал циклы для проверки каждого пикселя на наличие этих значений. Но при добавлении их в мой массив я нахожу, что не могу. Одна из проблем заключается в том, что мне нужно сначала определить размер массива, чтобы значения не помещались в нужное место. Я верю, что все остальное работает, кроме добавления значений в массивы.

Я пробовал различные методы объединения, чтобы добавить значения каждого пикселя в массив. У меня не было больше решений, чтобы попробовать.

folder3 = 'C:\Users\slenka\Desktop\Image_Analysis\Subtracted';
    cd('C:\Users\slenka\Desktop\Image_Analysis\Subtracted');
    subtractedFiles = [dir(fullfile(folder3,'*.TIF')); dir(fullfile(folder3,'*.PNG')); dir(fullfile(folder3,'*.BMP')); dir(fullfile(folder3,'*.jpg'))];
    numberOfSubImages= length(subtractedFiles);

    for b = 1 : numberOfSubImages
        subFileName=fullfile(folder3, subtractedFiles(b).name);
        chartImage=imread(subFileName);
        [chartY, chartX, chartNumberOfColorChannels] = size(chartImage);
        ccY= chartY/2;
        ccX= chartX/2;
        c=[ccX,ccY];
        distanceArray=zeros(1,chartX);
        intensityArray=zeros(1,chartY);
        f=1;
        g=1;
        for y=1:chartY
            for x=1:chartX

                D = sqrt((y - c(1)) .^ 2 + (x - c(2)) .^ 2);
                grayScale= impixel(chartImage, x, y);
                distanceArray(f)=[D];
                intensityArray(g)=[grayScale]; 
                f=f+1;
                g=g+1;
            end
        end
        xAxis=distanceArray;
        yAxis=intensityArray;
        plot(xAxis,yAxis);

    end

Я ожидаю, что 2 массива, один полный значений данных для интенсивности света каждого пикселя в изображении, и другой для расстояния этих пикселей от центра изображения. Я хочу построить эти два массива как оси Y и X соответственно. На данный момент фактические результаты представляют собой совершенно пустой массив, полный нулей.

...