R 用成像仪将图像从笛卡尔坐标系映射到极坐标系
我试图使用imageR将全景图像映射到极坐标系,但得到了奇怪的结果 作为一个例子,我想以这样一个方形全景图为例(由CC BY-NC-SA下的()提供,并编辑成方形): 并将其重新映射到类似以下内容(我在GIMP中已完成): 我在imageR中使用了以下代码:R 用成像仪将图像从笛卡尔坐标系映射到极坐标系,r,image,image-processing,polar-coordinates,cartesian-coordinates,R,Image,Image Processing,Polar Coordinates,Cartesian Coordinates,我试图使用imageR将全景图像映射到极坐标系,但得到了奇怪的结果 作为一个例子,我想以这样一个方形全景图为例(由CC BY-NC-SA下的()提供,并编辑成方形): 并将其重新映射到类似以下内容(我在GIMP中已完成): 我在imageR中使用了以下代码: library(imager) pano <- mirror(load.image("pano_image.jpg"), "y") # mirroring the image to map
library(imager)
pano <- mirror(load.image("pano_image.jpg"), "y") # mirroring the image to map to center
map.shift <- function(x,y) list(x = y*cos(x), y = y*sin(x)) # Here, y is the radius and x is theta
polar_pano <- imwarp(pano, map = map.shift)
plot(polar_pano)
库(成像仪)
pano您的结果只有一个象限,因为生成的变换既有负值也有正值
在函数中,结果的左上角是(-400,-400)
,右下角是(400400)
。减半并添加200,使其成为(0,0)
和(400400)
缩放触发参数,使其从-pi
变为pi
要使原始图像的底部成为结果圆的中心,x
必须是trig函数内的变量
library(imager)
pano <- load.image("pano_image.jpg")
pano <- mirror(load.image("pano_image.jpg"), "y")
map_shift <- function(x, y) {
list(
x = y * cos((x - 200) / 400 * 2 * pi) / 2 + 200,
y = y * sin((x - 200) / 400 * 2 * pi) / 2 + 200
)
}
polar_pano <- imwarp(pano, map = map_shift)
plot(polar_pano)
库(成像仪)
帕诺
library(imager)
pano <- load.image("pano_image.jpg")
pano <- mirror(load.image("pano_image.jpg"), "y")
map_shift <- function(x, y) {
list(
x = y * cos((x - 200) / 400 * 2 * pi) / 2 + 200,
y = y * sin((x - 200) / 400 * 2 * pi) / 2 + 200
)
}
polar_pano <- imwarp(pano, map = map_shift)
plot(polar_pano)