Nazwa forum

Niestety, nikt nie powie Ci czym jest FluxBB - musisz go poznać sam!

Nie jesteś zalogowany na forum.

#1 2017-06-14 17:11:52

adlex
Administrator
Dołączył: 2017-06-14
Liczba postów: 6
WindowsFirefox 53.0

Histogramy, histogramy kumulacyjne, filtracja histogramu.

GPL v3 License ; >

function [ histR histG histB histGR histcumR histcumG histcumB histcumGR] = licz_histogramy(A,windowSize)

%  Funkcja zwraca histogramy osobno dla kanałów R,G,B, w skali szarosci
%  Funkcja zwraca histogramy takze kumulacyjne, dla takich samych kanalow
%  jak zwykle.

% Podajac rozmiar okna ronzy od zera uzyskamy filtrowanie filtrem
% moving-average o podanej szerokosci okna.
%

% Histograms for channels R, G, B:

%kanal 1 R
histR(1:256,1)=0;
imgv=A(:,:,1); imgv=imgv(:);
for i=1:length(imgv)
    histR(imgv(i)+1)=histR(imgv(i)+1)+1;
end

%kanal 1 G
histG(1:256,1)=0;
imgv=A(:,:,2); imgv=imgv(:);
for i=1:length(imgv)
    histG(imgv(i)+1)=histG(imgv(i)+1)+1;
end


%kanal 1 B
histB(1:256,1)=0;
imgv=A(:,:,3); imgv=imgv(:);
for i=1:length(imgv)
    histB(imgv(i)+1)=histB(imgv(i)+1)+1;
end

% Histogram for image in grayscale:

B = cv.cvtColor(A,'RGB2GRAY');

histGR(1:256,1)=0;
imgv=B(:,:); imgv=imgv(:);
for i=1:length(imgv)
    histGR(imgv(i)+1)=histGR(imgv(i)+1)+1;
end

% Cumulative histograms:

histcumGR=histGR;
histcumR=histR;
histcumG=histG;
histcumB=histB;

for i=2:size(histcumGR,1)
histcumGR(i)=histcumGR(i)+histcumGR(i-1);
end

for i=2:size(histcumR,1)
histcumR(i)=histcumR(i)+histcumR(i-1);
end

for i=2:size(histcumG,1)
histcumG(i)=histcumG(i)+histcumG(i-1);
end

for i=2:size(histcumB,1)
histcumB(i)=histcumB(i)+histcumB(i-1);
end

% Simple filtering is done:

if windowSize ~= 0
   
b = (1/windowSize)*ones(1,windowSize);
a = 1;

histR = filter(b,a,histR);
histG = filter(b,a,histG);
histB = filter(b,a,histB);
histGR = filter(b,a,histGR);

end



%To jest end funkcji
end

Offline

Użytkowników czytających ten temat: 0, gości: 1
[Bot] ClaudeBot

Stopka

Forum oparte na FluxBB

Darmowe Forum