Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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/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
Algorithm 如何用实数坐标计算像素的颜色_Algorithm_Image Processing_Photo - Fatal编程技术网

Algorithm 如何用实数坐标计算像素的颜色

Algorithm 如何用实数坐标计算像素的颜色,algorithm,image-processing,photo,Algorithm,Image Processing,Photo,第一张图片是原始图像,第二张图片是通过从第一张图片重新排列像素而创建的图像。如您所见,曲线的边缘看起来像一个楼梯,因为像素是通过放置坐标从第一张图片中选择的。有没有像Photoshop中的抗锯齿功能那样平滑边缘的方法 2018年4月26日编辑: 根据Cris Luengo所说,我实现了双线性插值并将其应用于图像。结果如下(忽略橙色对象) 橙色对象附近的曲线看起来仍然像楼梯,但其余部分看起来更平滑。有没有其他算法可以使它更平滑?我发现实现双三次插值会让人困惑,但如果它能使图像更平滑,我会尝试。我

第一张图片是原始图像,第二张图片是通过从第一张图片重新排列像素而创建的图像。如您所见,曲线的边缘看起来像一个楼梯,因为像素是通过放置坐标从第一张图片中选择的。有没有像Photoshop中的抗锯齿功能那样平滑边缘的方法

2018年4月26日编辑: 根据Cris Luengo所说,我实现了双线性插值并将其应用于图像。结果如下(忽略橙色对象)


橙色对象附近的曲线看起来仍然像楼梯,但其余部分看起来更平滑。有没有其他算法可以使它更平滑?我发现实现双三次插值会让人困惑,但如果它能使图像更平滑,我会尝试。

我已经使用双三次插值实现了我的结果。它的时间复杂度不是太高,它保留了图像的对比度,这对于真实图像来说是很好的,但对于线条艺术来说不是很好,所以我认为这个算法是足够的

可能的解决办法

1) 双线性插值

2) 双三次插值


3) 从N倍大的图像开始逼近,然后重新调整其大小

这称为插值。使用插值对图像进行采样,而不是取整坐标。有两种基本方法:1。一种是将目标像素的分数计算到4个物理像素中,并通过混合2将每个像素添加到相应的位置。另一种方法是像你那样创建图像,但分辨率要大N倍,然后再调整到目标分辨率。@CrisLuengo我尝试过双线性插值,结果在文章中。还有其他的算法可以使它更平滑吗?如果你对插值结果不满意,那么你可以使用平均/低通滤波器来模糊/平滑插值后的图像啊,我现在明白了。橙色对象附近发生的情况是,输出比输入显著缩小。这使得插值是无效的。只有当刻度保持相似或增大时,它才能正常工作,而不是当刻度减小时。解决方案有点复杂@在这种情况下,Spektre的第二个解决方案将是一个很好的方法。“调整大小到目标分辨率”将涉及平均构成每个输出像素的NxN输入像素。一步到位是可能的,但很复杂。中间步骤将使它容易得多。