Home Geometrical transformation of a polygon to a higher resolution image
 I'm trying to resize and reposition a ROI (region of interest) correctly from a low resolution image (256x256) to a higher resolution image (512x512). It should also be mentioned that the two images cover different field of view - the low and high resolution image have 330mm x 330mm and 180mm x 180mm FoV, respectively. What I've got at my disposal are: Physical reference point (in mm) in the 256x256 and 512x512 image, which are refpoint_lowres=(-164.424,-194.462) and refpoint_highres=(-94.3052,-110.923). The reference points are located in the top left pixel (1,1) in their respective images. Pixel coordinates of the ROI in the 256x256 image (named pxX and pxY). These coordinates are positioned relative to the reference point of the lower resolution image, refpoint_lowres=(-164.424,-194.462). Pixel spacing for the 256x256 and 512x512 image, which are 0.7757 pixel/mm and 2.8444 pixel/mm respectively. How can I rescale and reposition the ROI (the binary mask) to correct pixel location in the 512x512 image? Many thanks in advance!! Attempt % This gives correctly placed and scaled binary array in the 256x256 image mask_lowres = double(poly2mask(pxX, pxY, 256., 256.)); % Compute translational shift in pixel mmShift = refpoint_lowres - refpoint_highres; pxShift = abs(mmShift./pixspacing_highres) % This produces a binary array that is only positioned correctly in the % 512x512 image, but it is not upscaled correctly...(?) mask_highres = double(poly2mask(pxX + pxShift(1), pxY + pxShift(2), 512., 512.));