python - 如何在 Python 中应用 intrinsicToWorld MatLab 函数?
问题描述
我正在尝试在 Python 中复制 MatLab 的 intrinsicToWorld 函数,但我找不到如何做到这一点,我已经有了内在坐标 (x, y)、坐标、图像尺寸和像素大小。这是 MatLab 中的代码:
figure, imshow(im8); title('rgb');
prompt = 'entre la coordenada ULX= ';
m = input(prompt);
prompt = 'entre el la coordenada ULY= ';
n = input(prompt);
prompt = 'entre el ancho= ';
lw = input(prompt);
prompt = 'entre el alto= ';
kw = input(prompt);
k=n+kw;
l=m+lw;
h = imrect(gca, [m n (k-n) (l-m)]);
addNewPositionCallback(h,@(p) title(mat2str(p,3)));
fcn = makeConstrainToRectFcn('imrect',get(gca,'XLim'),get(gca,'YLim'));
setPositionConstraintFcn(h,fcn);
xIntrinsic=[m l];
yIntrinsic=[k n];
[XWorldLimits, YWorldLimits] = intrinsicToWorld(R,xIntrinsic,yIntrinsic);
xlimitsa = XWorldLimits; %[m k]; %
ylimitsb = YWorldLimits; %[l n]; %
[A5,R5] = readgeoraster('pan8.tif');
[B,RB] = mapcrop(A5,R5,xlimitsa,ylimitsb);
filename = 'panrec.tif';
geotiffwrite(filename, B, RB,'GeoKeyDirectoryTag', info.GeoTIFFTags.GeoKeyDirectoryTag);
figure, mapshow(B,RB), title('pan 8 bits recortada celda 1m');
这是我在 Python 中的代码:
def print_trim():
im = Image.open('new_rgb.tif')
im.show()
coor_x = int(input('x coordinate '))
coor_y = int(input('y coordinate '))
width = int(input('trim width '))
height = int(input('trim height '))
ax = plt.gca()
rect = patches.Rectangle((coor_x,coor_y),
width ,
height ,
linewidth=2,
edgecolor='cyan',
fill = False)
ax.add_patch(rect)
plt.imshow(im)
xIntrinsic=[coor_x , (coor_x + width )]
yIntrinsic=[(coor_y + height) , coor_y]
print(xIntrinsic,yIntrinsic)
return xIntrinsic, yIntrinsic
现在我需要获取世界坐标,有人可以帮我吗?
解决方案
推荐阅读
- c# - Blazor 模板内的两种方式数据绑定
- javascript - 在 MVC 应用程序上更新动态 css 样式表
- pandas - 在一行中追加多行
- node.js - 使用 Docker compose 和 volumes 持久化上传的图片目录
- laravel-5 - 无法从 laravel 5.1 中的表单提交 GET 请求中获取输入数据
- firebase - firebase premession 奇怪的错误
- python - 计算所有 LSTM 时间步的损失,然后预测部分数据
- javascript - 如何在浏览器之外的 HTML 中块显示?
- c++ - 交换二维数组的 C++ 执行时间
- python - Python倒计时不是逐行