- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究在图像上模拟星星。该图像是按正态分布(均值、标准差)生成的灰度矩阵。现在,给定像素坐标和恒星 SNR,我必须将其作为点源种植在图像之上。有什么建议我如何实现它以使其成为有用的模拟?你能建议代码示例吗?我正在用 C++ 开发,但 Matlab/pseudocode 也不错。提前致谢
最佳答案
一颗星可以被认为是一个点源。望远镜/相机的光学系统,如果是理想的光学系统,将转换一个Airy disk。到成像平面上(胶片,CCD,你有什么)。因此,您应该生成一个艾里斑并将其添加到现有的像素值中(附近的多个恒星会有重叠的圆盘,应该将它们加在一起)。
我会简单地生成这个函数并在像素坐标处对其进行采样。请注意,艾里斑在距离中心相对较短的距离处会非常接近于零,因此您可以在该中心周围定义一个小区域,例如 7x7 像素,您可以在其中计算函数。这将节省大量计算。
为了进一步简化实现和计算成本,您可以使用高斯近似艾里斑。请注意,成像光学系统(包括大气层)中的任何缺陷都会导致投影点不太像艾里斑,而更像高斯分布,因此这并不是一个糟糕的近似值。
使用 DIPlib (我是作者)您可以通过调用 dip::DrawBandlimitedPoint
向图像添加高斯点。 :
constexpr std::size_t N = 10;
double coordinates[N][2] = {...};
double magnitudes[N] = {...};
dip::Image image({1024,1024});
for (std::size_t ii=0; ii<N; ++ii) {
dip::DrawBandlimitedPoint(image, {coordinates[ii][0], coordinates[ii][1]}, {magnitudes[ii]}, {1.0});
}
该函数调用中的 {1.0}
是高斯点的西格玛。调整此值以匹配您正在模拟的光学器件。该代码生成单精度浮点图像。你可以在适当缩放后将其转换为整数类型,例如:
image *= 10;
image.Convert(dip::DT_UINT16);
绘制艾里斑会更复杂一些。
关于c++ - 在图像顶部模拟天体(星星),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56554327/
在 ggplot 中,我想用星号 ('*') 标记一些误差条以指示显着性水平。该图在 y 轴上排列有类别标签,因此它们很容易辨认。这意味着误差条是水平的,* 需要与它们垂直对齐。但是,符号“*”并未在
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在研究在图像上模拟星星。该图像是按正态分布(均值、标准差)生成的灰度矩阵。现在,给定像素坐标和恒星 SNR,我必须将其作为点源种植在图像之上。有什么建议我如何实现它以使其成为有用的模拟?你能建议代
我正在尝试自定义 RatingBar 的每颗星,使其看起来不同。 当我查看它的源代码时 RatingBar或其父类(super class) AbsSeekBar/ProgressBar ,我无法识别
我想给 RatingBar 中的星星添加阴影。我也想用半星,所以我不能直接在星图上添加阴影。这有可能实现还是我必须创建自定义 RatingBar? 我使用以下可绘制对象使未填充的星星透明:
我正在尝试绘制一些随机点作为窗口中的星星,但积分没有显示。但其他对象显示正确。 我的源代码: #include #include #include // For math routine
GitHub API 提供了获取按创建日期排序的加星标项目的功能。但是,我找不到获得这个日期的可能性。 响应中仅存在三个日期类型字段: created_at: '2013-06-13T21:10:36
我制作了一些闪烁的随机星星粒子,由于某种原因它无法在 Firefox 上运行,我可以渲染出我的图像,但星星没有渲染。我也没有错误消息。 我把它发送给一个 friend ,由于某种原因,它在他的 chr
我是一名优秀的程序员,十分优秀!