给定具有已知尺寸(例如14782 x 5495像素)和所需方形尺寸(例如宽度,高度= 696像素)尺寸的图像,如何获得网格中每个元素的坐标?
实际上,我的图片没有网格。但是我想让坐标好像网格一样存在,如上所示。
坐标定义如下:
x和y是左上角的坐标(以像素为单位) 的选择。坐标系的原点(0,0)是 图像的左上角。
对于所有给定的输入图像,网格元素大小的核心大部分是固定的。 (例如,尺寸宽度x高度= 1000x1000像素的正方形)。网格周围元素的形状不是平方的,没关系。
完全像上图所示的网格方案。
实际图片为downloadable here(160MB)。
答案 0 :(得分:7)
似乎这就是你想要的:
x = [i for i in range(696, 14782, 696) for j in range(696, 5495, 696)]
y = [j for i in range(696, 14782, 696) for j in range(696, 5495, 696)]
测试它
import matplotlib.pyplot as plt
img = imread('04_709_channel-3.tif')
plt.imshow(img, cmap='gray')
plt.plot(x, y, 'ro')
答案 1 :(得分:3)
对于宽度为w
,高度为h
且像素缓冲数组data
的图片,索引i
的像素坐标由x = i % w, y = i / w
给出,其中{ {1}}是模数,%
是整数除法。
编辑:通过索引/
,我的意思是先增加i
,然后增加y
,即反操作是{{1} }