Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Javascript 查找二等分线与图像特定区域相关的位置_Javascript_Image Processing_Kineticjs - Fatal编程技术网

Javascript 查找二等分线与图像特定区域相关的位置

Javascript 查找二等分线与图像特定区域相关的位置,javascript,image-processing,kineticjs,Javascript,Image Processing,Kineticjs,首先,我使用的是javascript和KineticJS。 我有一张X光照片(你可以想象它使用什么颜色),这张照片是一张类似双桨的剖面图。我有一些在用户点击某些特定点后形成的线,其中一些点相交。在其中一对中,我需要知道由两条相交线形成的角的平分线何时与双桨的特定部分相交,也就是骨骼开始时(我认为是灰色的),我的问题是有没有好的方法来检查这一点?我的意思是,我可以在等分线上取每个点,然后检查像素的颜色吗?由于X射线可能不同(胶片亮度等),我如何确定。你能给我一个建议或者带我去什么地方吗?你的问题有

首先,我使用的是javascript和KineticJS。
我有一张X光照片(你可以想象它使用什么颜色),这张照片是一张类似双桨的剖面图。我有一些在用户点击某些特定点后形成的线,其中一些点相交。在其中一对中,我需要知道由两条相交线形成的角的平分线何时与双桨的特定部分相交,也就是骨骼开始时(我认为是灰色的),我的问题是有没有好的方法来检查这一点?我的意思是,我可以在等分线上取每个点,然后检查像素的颜色吗?由于X射线可能不同(胶片亮度等),我如何确定。你能给我一个建议或者带我去什么地方吗?

你的问题有点让人困惑

如果两条线相交,则会创建4个角度,因此会创建4条等分线

不管怎样,这里是如何开始的

一旦确定哪些点是有趣的,就可以使用
context.getImageData
获取这些点上像素的rgba值

然后将每个rgba像素颜色转换为hsl格式。Hsl格式分离颜色的色调、饱和度和亮度

骨骼和牙齿看起来更亮,因此可以比较亮度值以发现骨骼/牙齿

[添加:沿平分线计算点]

如果您知道两条直线[x,y]的交点,并且您知道您感兴趣的角度(弧度角),那么您可以沿直线计算距离(d)处的点,该点将该角度平分,如下所示:

var lineX = x + d * Math.cos(radianAngle);

var lineY = y + d * Math.sin(radianAngle);

然后,您可以使用
getImageData
中的
data
获取点[lineX,lineY]处的rgba颜色。然后转换为hsl格式,并使用灯光值确定[lineX,lineY]是否位于较亮的骨骼上方。

True它形成4个角度,但我知道如何获得我想要的角度。我只是不知道怎么画双色网,也不知道点什么时候在我想要的特定区域上。我已经在我的答案中添加了点来显示如何计算双色网上的点。我的答案已经解释了如何测试图像中较浅的骨骼区域。祝你的项目好运!我的问题是我无法找到一种方法来找到第二个点来画等分线。为了画这条线,我有一个点(两条线的交点,我需要找到另一条。我的几何结构非常粗糙。你不需要第二个点——你所需要的只是中心点和你想要的角度。然后除了我的答案外,插入公式,得到任意距离(d)的x,y沿着这条线。干杯!为了看点M是否在bisetrix上,我必须做的是:1)找到M和相交点之间的距离d 2)在加法中的公式上取代基d,然后找到linex和liney 3)如果它们Mx=linex和My=liney,那么它就在bisetrix上,对吗?