小编Dr.*_*ius的帖子

中轴变换的实际执行情况?

我已经看到了很多关于算法基于什么的解释,但我似乎无法找到中轴转换本身的任何实际代码(伪代码或某种语言).

对于某些情况(例如具有离散角的多边形),它可以简化为delaunay三角形,但我更关心的是你有一个blob(例如人类被跟踪)并想要计算它的骨架.

这个伪代码会是什么样的?

language-agnostic algorithm image-processing computer-vision computational-geometry

5
推荐指数
1
解决办法
2026
查看次数

如何绘制正多边形,使一条边与X轴平行?

我知道要从中心点绘制正多边形,您可以使用以下内容:

for (int i = 0; i < n; i++) {  
    p.addPoint((int) (100 + 50 * Math.cos(i * 2 * Math.PI / n)),
               (int) (100 + 50 * Math.sin(i * 2 * Math.PI / n))
              );
}
Run Code Online (Sandbox Code Playgroud)

但是,无论如何都要更改此代码(不添加旋转)以确保始终绘制多边形,以使最上边或最下边与180度线平行?例如,通常,上面的代码为五边形或正方形(分别为n = 5和4)会产生类似于:

http://i.stack.imgur.com/Nv6Xf.gif http://i.stack.imgur.com/or967.gif

我正在寻找的是:

http://i.stack.imgur.com/Tfxs1.gif http://i.stack.imgur.com/BIORA.gif

是否有任何数学方法可以实现这一目标?

math graphics geometry polygon

5
推荐指数
1
解决办法
4306
查看次数

最接近3D中的四行的点

给定3D中的4条线(表示为几个点),我想找到空间中的点,该点最小化该点与每条线之间的距离之和.

我试图找到一种方法将其表述为最小二乘问题,但我不太确定我应该如何做.我目前正在尝试使用以下网址提供的距离定义:http://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html

有任何想法吗?

algorithm math geometry computational-geometry

5
推荐指数
1
解决办法
756
查看次数

无法重新定义受保护的符号和系统功能

发现试图用来the usual trick重新定义GaussianFilter []:

out[x_]:=Print["(*"<>ToString@x<>"*)"];
(* Redefining Circle[ ] works as expected*)
Unprotect[Circle];
Circle[a_,args__]:=
      Block[{$i=True},{"Circle",a}]/;!TrueQ[$i];
Protect[Circle];
out@Circle[{0,1},1,{0,2Pi}]

(*{Circle, {0, 1}}*)

(* Redefining GaussianFilter[ ] does not*)
Unprotect[GaussianFilter];
GaussianFilter[a_,args__]:=
              Block[{$j=True},{"GaussianFilter",a}]/;!TrueQ[$j];
Protect[GaussianFilter];

SetDelayed::write: Tag GaussianFilter in GaussianFilter[a_,args__] is Protected>>
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

5
推荐指数
1
解决办法
714
查看次数

根据导数或指数级别对 Mathematica 中的公式进行排序

我有一个阻抗方程,我已将其转移到 Mathematica,希望能简化它。它代表电路原理图,电路阻抗(Z,来自 V = iZ)是 s 平面中多项的很大一部分。

作为一个简短的例子,它可能看起来像:

 L0s + (R1/(1 + R1 C1 s) + R3b + L3s + V3/s)/(R2a L2a s/(R2a + L2a s))
Run Code Online (Sandbox Code Playgroud)

我想将数据重新排列为:

k1*s^-1 + k2*s^0 + k3*s^1 ...  
Run Code Online (Sandbox Code Playgroud)

与代表多余数据的所有值k(各种 R、L 和 C 值的分数)。

什么公式操作最适合用来制作这些类型的结构?



我相信该Collect函数无法根据 s 的指数处理分离事物,即使方程经过简化然后展开全部,由于项之间的划分级别 - 有几层未解析的分数。

在想知道这个问题的同时,我也很好奇,如果我将所有内容都转换到时域,是否可以按素数(导出/积分的次数)排序?

S c0 + c1 + d/dt*c2 + d^2/dt^2*c3 ...
Run Code Online (Sandbox Code Playgroud)

sorting wolfram-mathematica exponent derivative

4
推荐指数
1
解决办法
872
查看次数

为什么Part :: partw会出现在Mathematica的DSolve表达式中

我试图解决微分方程:

DSolve[{0.02*x^2*y''[x] - y'[x] - y[x] == 0}, y[x], x]

但我收到了警告:

Part::partw: Part 2 of {1} does not exist.

我如何理解这个警告?非常感谢.

wolfram-mathematica

4
推荐指数
1
解决办法
609
查看次数

4
推荐指数
2
解决办法
4420
查看次数

如何导入.AVI文件?

我正在尝试导入.avi文件进行帧处理.

Import["c:\\windows\\clock.avi","Elements"]
Import["c:\\windows\\clock.avi","VideoEncoding"]
Import["c:\\windows\\clock.avi"]
Import["c:\\windows\\clock.avi",{"Frames",{5,6}}]

Out[115]= {Animation,BitDepth,ColorSpace,Data,Duration,FrameCount,FrameRate,
           Frames,GraphicsList,ImageList,ImageSize,VideoEncoding}
Out[116]= rle8
Out[117]= {1,2,3,4,5,6,7,8,9,10,11,12}
During evaluation of In[115]:= Import::fmterr: Cannot import data as video format.
During evaluation of In[115]:= Import::fmterr: Cannot import data as video format.
Out[118]= {$Failed,$Failed}  
Run Code Online (Sandbox Code Playgroud)

它报告了我测试的所有avi文件的相同错误.

任何提示?

wolfram-mathematica

4
推荐指数
1
解决办法
2321
查看次数

如何在mathematica中生成平面Cantor集的图

我想知道是否有人可以帮我在Mathematica的飞机上绘制康托尔灰尘.这与康托尔集相关联.

非常感谢.

编辑

我其实想要这样的东西:

在此输入图像描述

wolfram-mathematica

4
推荐指数
1
解决办法
1779
查看次数

如何在Mathematica中获得直方图以百分比显示分档?

我现在能够使用hspec"概率"生成一个y轴上的值在0.0和1.0之间的直方图,但是我想知道是否有办法将其显示为百分比(这只会改变标签) y轴).

这是我目前正在使用的:

Histogram[rawdata, {{0, 10, 20, 30, 40, 50, 60, 70, 80, 90,100}}, "Probability", 
          PlotRange -> {0, 1}]
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica mathematica-8

4
推荐指数
1
解决办法
1720
查看次数