C++ 使用图像像素

C++ 使用图像像素,c++,opencv,C++,Opencv,我在这里尝试做一个项目,我想实现以下内容: 我有一个旋转矩阵和平移矩阵是估计的,现在我有一个图像在某个位置,我想用旋转矩阵乘以所有图像像素,并将结果添加到平移矩阵中 我的问题是如何处理像素?我的意思是如何从图像中提取像素,以便执行我上面提到的操作 可以用opencv或c给我建议++ *我需要知道如何进行此操作 新的p(x,y)=旧的p(x,y)*旋转矩阵+平移矩阵。 我定义的图像类似于IplImage(),3通道图像。 现在我需要进行几何变换,但我不知道如何使用old_p(x,y),这意味着旧像

我在这里尝试做一个项目,我想实现以下内容:

我有一个旋转矩阵和平移矩阵是估计的,现在我有一个图像在某个位置,我想用旋转矩阵乘以所有图像像素,并将结果添加到平移矩阵中

我的问题是如何处理像素?我的意思是如何从图像中提取像素,以便执行我上面提到的操作

可以用opencv或c给我建议++

*我需要知道如何进行此操作 新的p(x,y)=旧的p(x,y)*旋转矩阵+平移矩阵。 我定义的图像类似于IplImage(),3通道图像。 现在我需要进行几何变换,但我不知道如何使用old_p(x,y),这意味着旧像素*


多谢各位

基本思想是,最终结果图像中的每个像素都需要一个颜色值。因此,您需要找到一个函数,该函数将(旋转和平移的)像素映射到最终结果图像的每个
(x,y)
位置


给定一个将原始图像坐标转换为目标图像坐标的矩阵,您可能最终会反转该转换并将其应用于每个目标图像像素,加上或减去一些优化。

基本思想是,您需要最终结果图像中每个像素的颜色值。因此,您需要找到一个函数,该函数将(旋转和平移的)像素映射到最终结果图像的每个
(x,y)
位置


给定一个将原始图像坐标转换为目标图像坐标的矩阵,您可能最终会反转该转换并将其应用于每个目标图像像素,加上或减去一些优化。

在Opencv中,您需要的函数位于手册的“几何图像转换”部分。在您的例子中,由于已经有了旋转矩阵和平移,
warpAffine
是选择的函数()。传递的变换矩阵的前两列是旋转矩阵,第三列是平移向量(如果您不熟悉齐次坐标)。

在Opencv中,您需要的函数位于手册的“几何图像变换”部分。在您的例子中,由于已经有了旋转矩阵和平移,
warpAffine
是选择的函数()。传递的变换矩阵的前两列是旋转矩阵,第三列是平移向量(如果您不熟悉齐次坐标)。

这取决于“图像”的实现。它是一个颜色值的原始数组,一个手工滚动的图像类,还是使用某种图像加载库,比如FreeImage?我没有完全理解你的意思,但我会告诉你我在做什么。我正在处理视频,我想返回到前一个位置的第二张图像,即第一帧的位置。问题是答案完全取决于你如何处理这些图像。就目前情况而言,这是无法回答的。C++中没有图像类。我们所知道的可能是一个字节数组或某个库“Image”类。这取决于“Image”的实现。它是一个颜色值的原始数组,一个手工滚动的图像类,还是使用某种图像加载库,比如FreeImage?我没有完全理解你的意思,但我会告诉你我在做什么。我正在处理视频,我想返回到前一个位置的第二张图像,即第一帧的位置。问题是答案完全取决于你如何处理这些图像。就目前情况而言,这是无法回答的。C++中没有图像类。就我们所知,你可能在谈论一个字节数组或某个库“Image”类;是的,这就是我需要的,我的问题是使用哪些函数以及如何使用?对于第二部分,我正在将图像位置转换为以前的位置,正如我们已经说过的,这取决于您如何处理这些图像。C++中没有包含与标准库中的图像操作相关的任何内容。要么将图像读入数组,要么使用第三方API。如果没有更多的信息,我们无法给你答案。如果你需要,我甚至可以给你代码,以及你感兴趣的任何其他信息。我正在使用opencv,这是一个处理图像的库;是的,这就是我需要的,我的问题是使用哪些函数以及如何使用?对于第二部分,我正在将图像位置转换为以前的位置,正如我们已经说过的,这取决于您如何处理这些图像。C++中没有包含与标准库中的图像操作相关的任何内容。要么将图像读入数组,要么使用第三方API。如果没有更多的信息,我们无法给你答案。如果你需要,我甚至可以给你代码,以及你感兴趣的任何其他信息。我正在使用opencv,这是一个处理图像的库。答案仍然有效
warpAffine
。答案仍然有效<代码>扭曲仿射。