Info

This question is closed. Reopen it to edit or answer.

How can I find the value with the most change in my histogram?

1 view (last 30 days)
[N,edges] = histcounts(Y);
min = mean();
[k1,k2,k3]=size(imYuv) %Size of the picture
for i=1:k1
for j=1:k2
if Y(i,j)>min
Y(i,j)=0;
end
end
end
imYuv(:,:,1)=Y;
final = colorspace('RGB<-YUV',imYuv);
HIstogram1.jpg
I know the value is around .64 something.
But im trying to automated so it can select that for my threshold value.
  4 Comments
Image Analyst
Image Analyst on 13 Oct 2019
I don't understand. Do you just want to blacken any values higher than 0.67? Or is it variable? Because you have lots of minimums all over the place. If it's variable then how are we supposed to know to take the min between 0.5 and 0.7 and not the min between 0.5 and 0.35, or any other min?
ThatStudent
ThatStudent on 13 Oct 2019
Yeah I want to just blacken the values greater than 0.67, and use that to make all the values greater than that black. What my professor told me was to, get the minimun next to the largest or the one with the biggest change . That is how you would know to use that minimum instead of the others.

Answers (1)

KALYAN ACHARJYA
KALYAN ACHARJYA on 13 Oct 2019
Edited: KALYAN ACHARJYA on 13 Oct 2019
More detail with example:
data=[1 2 -4 5 6 0 5 20 10]; % Hist data is just simillar array
diff_data=diff(data)
idx=find(diff_data==max(diff_data));
threshold=data(idx+1)
  2 Comments
ThatStudent
ThatStudent on 13 Oct 2019
Should I use the N or the edges or would it work with both?
KALYAN ACHARJYA
KALYAN ACHARJYA on 20 Oct 2019
You can get it just see the maximum different (with neighbours) in number of pixels (N).

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!