投影手机

完美的婚纱摄影,全心全意为婚姻伴侣定格美好生活瞬间!

中心投影的例子 弧形投影

dgmf88 2021-04-11 投影手机 136 views 9
一套全息投影设备多少钱弧形投影全息影像技术
大型全息投影制作方法全息投影仪全息投影原理图解
全息投影原理全息投影技术的原理什么是平行投影

中心投影的例子

问题:

假设我有一个大图像,像素。我想把这个图像粘贴到任意半径的球体的内部。在

为此,我将图像作为一个数组导入,并确定数组的中心。我将循环遍历每个像素,确定它与中心的偏移距离,并使用这个x和y位移,我将使用简单的几何体来确定它应该被复制到输出阵列的哪个位置。在

下面是我的输入和输出的一些例子(但是规模比我试图使用的要小得多)。在

示例输入

示例输出

使用和,如何加快我的方法(在一个非常大的数组上逐像素)需要几分钟的时间?在

代码:(x_d,y_d,z_d)=#

(x_c,y_c)=(,)#

=np.zeros([x_m,y_m,d])#createemptyoutputimage

forxinrange(0,x_d):#iterateacrosspixels

foryinrange(0,y_d):#iteratedownpixels

(x_1,y_1)=(x-x_c,y-y_c)#determinepixeldisplacementfromcentre

(r_x,r_y)=(np.sqrt((rad**2.0)-(y_1**2.0)),np.sqrt((rad**2.0)-(x_1**2.0)))#determinerelativeradius(mathspart2)

#determinetherelativeradius

x_2=int(np.round(r_x*np.sin(x_1/r_x),0))#determinenewx-position(mathspart1)

y_2=int(np.round(r_y*np.sin(y_1/r_y),0))#determinenewy-position(mathspart1)

x_2=int(np.round(x_2+x_c,0))#convertbacktoabsolutepixellocation

y_2=int(np.round(y_2+y_c,0))#convertbacktoabsolutepixellocation

new_image[x_2,y_2,:]=image[x,y,:]#...placethepixelthere

尝试次数:

我已经搜索过预构建的库来实现这一点,但是我对一些特定的术语感到费解,还没有找到任何东西。在

我尝试过使用numpy的item和itemset函数读写数组值,但这实际上似乎减慢了处理速度。在

因为我在这个数组上运行了很多次,所以我只会对这个数组产生多次影响。即:

^{pr2}$

数学:

说明代码中提到的“数学第1部分”的图片。这将获得结果像素位置,就像从粘贴图像的球体顶部看到的一样。如果半径在另一个维度中保持不变,这个方法在一个维度中起作用,但是对于球体来说,这个有效半径会发生变化,因为在球体内部绘制的圆越远离中心就越小。因此,“数学第二部分”在给定了球中心在y轴上的位移后,求出了在x轴上球的内侧画出的圆的有效半径

解释代码中提到的“数学第二部分”的图片。根据球中心在y轴上的位移,找到计算合成x位置的有效半径

猜你喜欢

发表评论

发表评论:

扫描微信

扫一扫添加微信