我正在尝试在这里做一个项目,我想实现以下内容:
我有一个旋转矩阵和平移矩阵,现在我在某个位置有一个图像,我想将所有图像像素乘以旋转矩阵,并将结果添加到平移矩阵中..... / p>
我的问题是如何使用像素?我的意思是如何从图像中提取像素以进行上面提到的操作?
可以在opencv或c ++中给我提出建议
* 我需要知道如何进行此操作 new_p(x,y)= old_p(x,y)* rotation_matrix + translation_matrix。 我正在定义像IplImage(),3通道图像的图像。 现在我需要进行几何变换,但我不知道如何使用old_p(x,y)表示旧像素*
谢谢。
答案 0 :(得分:4)
在Opencv中,您需要的功能位于本手册的“几何图像转换”部分。在您的情况下,由于您已经有旋转矩阵和翻译,warpAffine
是选择的函数(link to function documentation)。您传递的变换矩阵的前两列是旋转矩阵,第三列是平移向量(如果您不熟悉齐次坐标)。
答案 1 :(得分:0)
基本思想是您需要最终结果图像中每个像素的颜色值。因此,您需要找到一个将(旋转和平移)像素映射到最终结果图像的每个(x,y)
位置的函数。
如果矩阵将原始图像坐标转换为目标图像坐标,您可能最终会反转该转换并将其应用于每个目标图像像素,加上或减去一些优化。