フィルターのクリア

Finding the threshold of thermal images

2 ビュー (過去 30 日間)
asaf omer
asaf omer 2022 年 2 月 15 日
コメント済み: yanqi liu 2022 年 2 月 16 日
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);

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by