Borrar filtros
Borrar filtros

Heatmapping using temperature data from drone images/ Imfusing data is altering temperature values

3 visualizaciones (últimos 30 días)
Hi, I am working on infrared (IR) drone images and my main objective is to attain heatmap as per road profile/ road layout. I have extracted pixel wise heat data (data1.mat and data2.mat) from the IR images (0001_JPG and 0002_JPG). The extracted data is in type 'double'.
To develop the road profile using heat data, I decided to use GPS data from IR images so I can find distance between two images center to center (c/c). All the steps have gone fine, but at moment when I 'imfuse' two heat data files as per road layout keeping GPS based c/c distance, the output file (AB.mat) changes the data type (to unit8), which alter the temperture values in pixels.
Kindly advise, what other functions or options I can use to combine two data files without alter pixel temperature values. I just want to retain temperture values pixel wise so on combining datasets I can display whole heatmap along road profile/ road layout. As few images are overlapping so I need to keep them as per GPS, as center, to get exact layout.
I hope I have clarified my query.
Please advise.
data1;
Picinfo1 = imfinfo('0001_T.JPG');
Xx1=Picinfo1.GPSInfo.GPSLatitude;
X1= dms2degrees(Xx1);
Yy1=Picinfo1.GPSInfo.GPSLongitude;
Y1= dms2degrees(Yy1);
data2;
Picinfo2 = imfinfo('0002_T.JPG');
Xx2=Picinfo2.GPSInfo.GPSLatitude;
X2= dms2degrees(Xx2);
Yy2=Picinfo2.GPSInfo.GPSLongitude;
Y2= dms2degrees(Yy2);
% distance between two images c/c
wgs84 = wgs84Ellipsoid("m");
Ds1 = distance(X2,Y2,X1,Y1,wgs84);
%determining pixel sizes w & h
% Pixel size factors
DD1=str2double(Picinfo1.XMPData.drone_dji.RelativeAltitude); % Altitude value is Character array
DD2=str2double(Picinfo2.XMPData.drone_dji.RelativeAltitude);
FOV=82.9; % from DJI website
%image 1
pixelsize1w=tan(FOV/2)*DD1/Picinfo1.Width; % meters
pixelsize1h=tan(FOV/2)*DD1/Picinfo1.Height; % meters
%image 2
pixelsize2w=tan(FOV/2)*DD2/Picinfo2.Width; % meters
pixelsize2h=tan(FOV/2)*DD2/Picinfo2.Height; % meters
% pixel box
R1 = imref2d(size(data1),pixelsize1w,pixelsize1h);
R2 = imref2d(size(data2),pixelsize2w,pixelsize2h);
%Referencing Images from each other (center to center)
R1.XWorldLimits = R1.XWorldLimits;
R1.YWorldLimits = R1.YWorldLimits;
R2.XWorldLimits = R2.XWorldLimits+Ds1;
R2.YWorldLimits = R2.YWorldLimits;
%Mapping Heat Data
AB=imfuse(data2,R2,data1,R1,'blend','Scaling','joint');
figure;
imshow(AB);
Please any suggestion or advise will be helpful. I want to follow the above mentioned strategy.

Respuestas (0)

Categorías

Más información sobre Display and Exploration en Help Center y File Exchange.

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by