Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 计算图像上两点之间的像素_Android_Iphone_Algorithm_Pixel - Fatal编程技术网

Android 计算图像上两点之间的像素

Android 计算图像上两点之间的像素,android,iphone,algorithm,pixel,Android,Iphone,Algorithm,Pixel,事实证明,我并没有很好地解释我想做的事情,所以我将重新编写整个问题,并添加图形以帮助解释 我正在为android/iPhone设计一个应用程序。我已经为它设计了一个算法,但我还在下一个算法上。我的目标是将两条水平线放在一张图像上(任何图像,仅仅是iPhone/android拍摄的一张照片),然后计算这些线所在的像素,然后计算它们之间的像素数。 即。 拍下这张照片: 然后在图像的任意位置放置两条水平线,如下所示: 我想计算的是y的值,或者两行之间有多少垂直像素。要做到这一点,我必须知道这两条线

事实证明,我并没有很好地解释我想做的事情,所以我将重新编写整个问题,并添加图形以帮助解释

我正在为android/iPhone设计一个应用程序。我已经为它设计了一个算法,但我还在下一个算法上。我的目标是将两条水平线放在一张图像上(任何图像,仅仅是iPhone/android拍摄的一张照片),然后计算这些线所在的像素,然后计算它们之间的像素数。 即。 拍下这张照片:

然后在图像的任意位置放置两条水平线,如下所示:

我想计算的是y的值,或者两行之间有多少垂直像素。要做到这一点,我必须知道这两条线的像素是什么。 假设水平线的高度都只有1个像素,我会用什么来计算出线所在的图像像素。即,每条水平线上的y截距(y=mx+c)或c的值是多少。
为了进一步解释我的意思,让我们假设图像是一个图形。每个像素的值等于1,因此对于分辨率为1920x2560的图像,y轴的最大值为1920,x轴的最大值为2560。我如何设计算法来计算两条直线的y截距是多少?

两点之间的距离(毕达哥拉):

两条水平线之间的距离:

d = y1 - y2;
如果您的行被定义为
y1=k1x+n1
y2=k2x+n2
,那么(它们是水平的,
k1
k2
是0)它们之间的距离是
n2-n1

编辑:好的,编辑完问题后,现在更有意义了。但是,由于您(或用户)正在添加这些行,因此您的代码始终知道它们位于何处。其末端坐标为:

第1行:{(0,y1):(图片宽度,y1)} 第2行:{(0,y2):(图片宽度,y2)} 距离:| y2-y1|

因为它们都是水平的,所以它们当然不会交叉


您应该在适当的空间中保留对y1和y2的引用(来自行放置代码)。因为你的问题是针对Android和iOS的,所以答案是:在MVC中对应于
模型的那部分代码中。

@alextsc,到目前为止没有。。。我已经开发了一种算法来计算高度(m),该算法基于像素的#和与计算高度的对象的距离。除了读取整个图像像素高度和宽度的元数据外,我还不知道如何计算图像中的像素。您正在搜索毕达哥拉斯公式吗?;)距离是√(高度^2+宽度^2)我刚刚编辑了我的问题,这回答了我问题的第二部分,无论如何我都可以算出,不过还是要谢谢你。@Vigi:你的问题还不是很清楚。你是在寻找一种扫描图像并找到这两条线的图形算法吗?好吧,我重新措辞了我的问题,也许它现在更有意义了?@Vigi:是的,它现在更有意义了,+1。我会编辑我的答案,但我已经知道所有添加的内容了。@Vigi:那么子问题是:你到底是如何放置这些水平线的?它们是以某种方式放在代码中还是已经出现在图片上了?
d = y1 - y2;