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
C++ 旋转对象时缺少像素_C++_Image Processing_Algebra_Rotational Matrices - Fatal编程技术网

C++ 旋转对象时缺少像素

C++ 旋转对象时缺少像素,c++,image-processing,algebra,rotational-matrices,C++,Image Processing,Algebra,Rotational Matrices,所以我创建了一个椭球体,但当我尝试旋转它时,几乎有一半的体素丢失了。无论是使用旋转矩阵还是使用从一个基到另一个基的转移矩阵,我都会立即开始丢失像素。如果椭球体处于0度、90度、180度或270度,则看起来很好。但当它在这些角度之间移动时,背景色开始从我的物体上的小孔中窥视出来。我假设这是某种浮点到整数的转换问题,但我不知道如何解决它。有人有什么想法吗 发生这种情况的原因是,在绘制旋转形状时,由于坐标的舍入/截断,多个源像素映射到同一个目标像素,这意味着存在未获得任何值的目标像素 正确的方法是获取

所以我创建了一个椭球体,但当我尝试旋转它时,几乎有一半的体素丢失了。无论是使用旋转矩阵还是使用从一个基到另一个基的转移矩阵,我都会立即开始丢失像素。如果椭球体处于0度、90度、180度或270度,则看起来很好。但当它在这些角度之间移动时,背景色开始从我的物体上的小孔中窥视出来。我假设这是某种浮点到整数的转换问题,但我不知道如何解决它。有人有什么想法吗

发生这种情况的原因是,在绘制旋转形状时,由于坐标的舍入/截断,多个源像素映射到同一个目标像素,这意味着存在未获得任何值的目标像素


正确的方法是获取所有目标像素并执行逆变换,然后收集应该在目标像素中的值。可能会做一些插值。

看看你的问题。你能根据你提供的信息量来判断发生了什么吗?代码或算法会很好,毕竟,你确实把它标记为C++,但是没有C++代码。所有的矩阵从一个基转移到另一个基。他们就是这么做的。旋转矩阵是从正交基转移而来的矩阵。你解释中的目标像素是什么?它是目标图像中的一个像素。“结果”图像。目标图像同样令人烦恼。如果是转换后的图像,那么目标像素未获得任何值的语句就没有意义。如果您像这样实现它:
for(srcImage中的srcCoords)dstCoords=transform(srcCoords);dstImage[dstCoords]=srcImage[srcCoords]此代码中没有未获取任何值的
dstCoords