Finding the threshold of thermal images

2 次查看(过去 30 天)
Hello.
I have some thermal images and i wanna find the optimal thresholds,is there a command that can can help with this?
So far I didnt find something usefull.
thanks

回答(1 个)

Image Analyst
Image Analyst 2022-2-15
There is no optimal threshold. You have to decide what temperature range you're interested in. An image just has a bunch of temperatures in it. How could it possibly know that you're interested in the range from 240 degrees C and hotter? It can't. Only you would know that.
By the way, if you need to convert a pseudocolored image into a temperature image, see my attached demo.
  3 个评论
Image Analyst
Image Analyst 2022-2-15
You can find the max of the histogram and fall down a certain amount from there, like until it gets to 2% of the max:
[counts, edges] = histcounts(thermalImage);
[maxCount, indexOfMax] = max(counts);
thresholdLevel = 0;
for k = indexOfMax : length(counts)
if counts(k) < 0.02 * maxCount
thresholdLevel = edges(k);
end
end
or you could try my attached triangle threshold method, which is good at finding the "corner" of skewed histograms.
yanqi liu
yanqi liu 2022-2-16
yes,sir,may be use cumsum to get the target rate
clc; clear all; close all;
thermalImage = imread('cameraman.tif');
[counts,centers] = hist(thermalImage(:), 0:255);
counts2 = cumsum(counts);
for k = 1 : length(counts2)
if counts2(k) < 0.5 * counts2(end)
else
% find 50% rate
thresholdLevel = centers(k);
break;
end
end
bw = thermalImage < thresholdLevel;
figure; imshow(bw);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 3-D Volumetric Image Processing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by