0

我正在研究计算机断层扫描问题,其中我必须模拟 CT 设备生成的原始数据或正弦图的生成。

Matlab 有一个内置函数“radon()”来模拟相同的。我已经在 Matlab 中成功编写了一个自定义代码来生成正弦图(即:不使用 radon() )。

我已将此代码转换为 C,使用 OpenCV 库来处理图像的加载/显示/保存。

问题是,虽然我的 matlab 输出按预期生成了正弦图,但我的 C 代码却没有。我只是将 Matlab 代码翻译成 C,但 C 输出的方向不同,中间也有黑条。C 输出中的灰度级类似于由 matlab 代码生成的正弦图灰度级和图案。只有它在 C 中出现分段。(如果你给我你的邮件 ID,我会发送图像,因为我无法在此处附加它们。)

有人可以帮我解决为什么会这样吗?我已经对我的代码进行了同行评审,并检查了类型转换错误、内存分配等。但它们似乎都是正确的。

matlab 处理数据的方式与 C 不同吗?倾斜的解释是什么?

请帮帮我。如果您需要有关问题陈述的更多说明或需要查看算法,请告诉我。

谢谢!

4

2 回答 2

0

当我们看不到代码、输出或预期输出时,很难解决这样的问题。

也许您可以将图像上传到一些公共图像托管,并从问题中添加链接?

如果您正在执行三角函数调用(sin()和朋友),我会特别注意使用的参数,并检查 Matlab 是否以某种方式提供了更精确的结果。当然,这是在黑暗中刺伤,因为我不熟悉您的域。

于 2012-02-21T08:54:35.997 回答