简体   繁体   中英

How to fix the undefined function or variable error?

I am working on Matlab 17.a program's image processing. My work is about histogram equalization. The code is as follows. But when I run the code "Undefined function or variable 'cumulavite_hist'." I get an error. How do I fix this problem? Thank you for your help.

The output will be the histogram next to the original image. Below it will be the changing picture and histogram. Thank you for your help.

>> img= imread ('C:\Users\emre.guzel\Desktop\homeworkimage.png');
if (size(img,3)>1) 
    img=rgb2gray(img); 
end


max_r = size (img,1);
max_c =size (img,2);
histogram =zeros ([1 256]);
cumulative_hist = zeros ([1 256]);

for r=1:max_r
    for c=1:max_c
        for count =1:256
            if(img(r,c) == count-1 )
                histogram (count) =histogram (count)+ 1;
                break ; 
            end    
        end
    end
end

%find cumulative histogram 
current_value = 0;
for count=1:256
    current_value = current_value + histogram (count);
    cumulative_hist(count) = current_value;
end
%find h =(cdf-cdf(min) / (MN - cdf (min) )) * 255
%this is the normalized cumulative histogram normalize dediğine bakma sen.
%histogram equalization formulu bu . aşağıda da bunu uygulamış.
normalized_hist = zeros ([1 256]);
cdf_min = min (cumulavite_hist) ;
for count = 1:256
    normalized_hist(count) = cumulative_hist(count) - cdf_min;
    normalized_hist(count) = normalized_hist (count) / ((max_r*max_c)- cdf_min);
    normalized_hist(count) = round (normalized_hist (count) * 255);
end
%replace the values with given equalized    values 
equalized_image = zeros ([max_r max_c]);
for r =1:max_r
    for c=1:max_c

        for count = 1:256
            if(img(r,c) ==(count-1))
                %
                %
                equlized_img(r,c) = normalized_hist(count);

                break;
            end
        end
    end
end
subplot(2,2,1)
imshow(img);
title('Orijinal Image');
subplot (2,2,2);
imhist(img) ;
title ('Hist of Orijinal Image');
subplot(2,2,3) ;
imhist (uint8(equalized_img));
title('Histogram Equalized Image');
H = uint (equalized_img);
subplot(2,2,4) ;
imhist(H) ;
title ('Histogram of Histogram Equalized Image');

a = histeq(img);
figure 
imshow(a)

Come on, man. You have comulative_hist variable at line 10 and cumulavite_hist variable used in line 33. It's just wrong name in line 33. Fix it and program will work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM