4
计算月亮的大小
月球之谜的大小 我相信您已经听说月亮改变了它的大小。当您恋爱了并且很幸运时,月亮的大小几乎是正常情况下的两倍。有人说,原因是大气充当了镜头。其他人则认为,这仅仅是与附近树木等其他物体进行比较的问题。无论您阅读了什么说明,都是相当主观的。 月球科学的大小 好吧,我们是程序员,不是吗?我们依靠事实,对吗?所以这是实验: 拿一个不错的相机,它支持手动设置时间和光圈。 将相机设置为最大变焦等级。 外出时,为月亮拍摄一些照片,以检测最佳设置,以使月亮清晰且光线充足。 记住设置 每当您认为月球大小时,都使用这些设置为月球拍照。 计算月亮的大小(以像素为单位) 相机不会说谎,是吗?通过计算明亮的像素,我们可以有效地测量月亮的大小-至少以像素为单位。 如果所有照片的大小都相同,那么这就是我们大脑中的错误。如果大小不同,那么就有炒作的空间 月亮真的长了(但是它吃什么?) 有大气的镜头效果 月亮呈椭圆形,有时更近,有时更远离地球 ... 但是我将保持打开状态,直到您的任务完成。当然,您想事先知道您的软件是否可以准确计算月球尺寸。 任务 给定一些优化的月球图片,请计算月球的大小。优化是:像素为黑色或白色。两者之间什么都没有。没有抗锯齿。这很容易,不是吗? 注意事项:月亮并不总是充满,您知道...它可能是镰刀!但是即使是镰刀形状,月亮的大小也会更大。因此,请计算出完整尺寸。 stdin如果您编写的是函数而不是程序,则程序将PNG作为输入,例如作为文件名命令行参数,通过管道传输到(或作为标准框架库的)Bitmap对象。 您的程序可以使用任何合理的输入位图大小,而不必是正方形。保证最小宽度和高度为150像素。 满月至少覆盖了图片的25%。 您的程序将以像素为单位输出计算出的月亮大小,就好像它是满月一样。 我们假设月亮是一个完美的球体。 确切的大小始终是整数,但是如果计算返回该数字,则可以输出一个十进制数。 精度应在98%到102%之间。(这只是一个猜测,而不是我可以保证可以实现的目标。如果您认为很难实现,请发表评论。) 更新: 月亮的中心不一定在图片的中间。 最小可见区域为月球的5%或像素总数的1.25%。 以使整个月亮适合图像的方式拍摄照片,即,像素总数是月亮大小的上限。 月亮不会被裁剪/修剪。 样品 如果愿意,您可以使用混合文件生成自己的样本。我为您制作了以下图片。您可以使用WhitePixelCounter.exe(需要.NET)对PNG文件中的像素进行计数,以检查图像是否仅包含黑白像素以及它们包含多少个。 以下256x256像素图像的白色像素数量有所不同,但所有这些图像的计算出的月亮大小应为16416像素。 这些177x177像素的图像应返回10241像素。图像基本相同,但是这次使用的是焦距不同的相机。 结果为9988的非正方形和非中心样本: 哦,我目前没有参考实现,我什至不知道我是否能够实现某些功能。但是在我的大脑中,有一个强烈的信念告诉我它必须在数学上可以解决。 规则 这是Code Golf。2015-03-30上最短的代码被接受。