How can I find the value with the most change in my histogram?
Info
This question is closed. Reopen it to edit or answer.
Show older comments
[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);

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
on 13 Oct 2019
What do you know about your image and how much control do you have over the image capture conditions? Would it be alright to just find the min value between 0.5 and 0.7, or would that not work. If it would not work, why not? Attach an image where it would not work.
ThatStudent
on 13 Oct 2019
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
on 13 Oct 2019
Answers (1)
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
on 13 Oct 2019
KALYAN ACHARJYA
on 20 Oct 2019
You can get it just see the maximum different (with neighbours) in number of pixels (N).
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!