现在我有图像A,我想将其重新映射到图像B,图像B的大小与图像A不同.
对于每个像素坐标(x,y),它在图像B上具有坐标(r,theta).
谁能告诉我如何实现它,最好是带有示例代码?因为我真的不明白的论点map_x,map_y在重映射功能.
有人可以帮我解释一下吗?非常感谢!
remap(i,j)通过检查map_x(i,j)和确定映射像素的位置map_y(i,j).最后,您的像素(i,j)被映射到(map_x(i,j),map_y(i,j)).
在你的情况下,你的像素(x,y)应该映射到(sqrt(x ^ 2 + y ^ 2),atan(y/x)); 所以你需要使用这些购物车填充map_x和map_y到极坐标方程式:
for(int i = 0; i < src.rows; i++ )
{
for(int j = 0; j < src.cols; j++ )
{
map_x.at<float>(i,j) = sqrt(i^2 + j^2);
map_y.at<float>(i,j) = atan(j/i);
}}
Run Code Online (Sandbox Code Playgroud)
您可能还想查看cartToPolar
| 归档时间: |
|
| 查看次数: |
5142 次 |
| 最近记录: |