我有一个30 x 100
像素大小的图像。
-
如何计算对角线上有多少像素?我能吗应用勾股定理?但如果是的话,我们可以获得float像素数。那么我该如何解决这个问题呢?
-
此外,如何自动提取的
x
和y
坐标值对角线上的每个像素?
我已经为一个正方形矩阵写了一个MATLAB代码,这很容易。但是,我如何将我的代码概括为包括任何大小的图像(不仅仅是正方形图像(。。
%suppose an image of size 100 x 100
image = rand(100,100);
n = length(image);
%extract how many pixels are there on the diagonal
diagonal_pixels = sqrt(n^2 + n^2);
%Get the x and y coordinates values of each diagonal pixel
for i = 1: n
x_coordinate_diag(i) = i;
y_coordinate_diag(i) = i;
end
您可以使用这些步骤来获得对角线像素
- 获取最小宽度和高度长度(假设是宽度(
- 穿过最小长度的环路(例如:宽度(
- 通过四舍五入i*高度/宽度获得cordinate高度
例如50 x 100
- 最小值为50
- 对于i=0,
j = 0 x 100 / 50 = 0
- 对于i=1,
j = 1 x 100 / 50 = 2
- 对于i=2,
j = 2 x 100 / 50 = 4
- 对于i=50,
j = 50 x 100 / 50 = 100