Dear Matlab community, I am given the number of pixels as 768 by 768 for a TIFF image and I am required to convert it to x and y geographical coordinates

2 次查看(过去 30 天)
  2 个评论
Rukundo Wellen
Rukundo Wellen 2022-12-27
I = imread('xp.tiff');
info = imfinfo('xp.tiff');
height = info.Height; % image height in pixels
width = info.Width; % image width in pixels
[H,W] = meshgrid(1:height,1:width);
R = georefcells([-90 90],[0 360],2,2,'ColumnsStartFrom','north')
[x,y] = pix2map(info.R, H, W); % the pixel coordiantes are transfeered to the intirinsic coordiantes
[lat,lon] = projinv(info,x,y); %to transfer intirinsic to geographical coordiantes.

请先登录,再进行评论。

回答(1 个)

Nadia Shaik
Nadia Shaik 2023-3-10
Hi Rukundo,
I understand that you wish to convert the pixel coordinates to geographic coordinates. Below are a few changes you can consider:
  • when you use "meshgrid", the first input should be the width (i.e., the number of columns) and the second input should be the height (i.e., the number of rows):
[W, H] = meshgrid(1:width, 1:height);
  • You can use the "geotiffread" function instead of "imread" to read in the "TIFF" file. This will give you both the image data (I) and the R structure, which contains the georeferencing information.
[I, R] = geotiffread('xp.tiff');
Hope this helps!

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by