计算一个全息图片的两个设想
2021/5/20 18:56:49
本文主要是介绍计算一个全息图片的两个设想,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import cv2 import numpy image=cv2.imread("13.jpg") image=image.astype(numpy.float32) image=image[:,:,:1]+image[:,:,1:2]+image[:,:,2:3] # 建设一个像素代表实际像素的100000 long_data=100000 cols_list=[] rows_list=[] for i in range(image.shape[1]-2): h2=(image[:,i:i+1, :]-image[:,i+1:i+2, :])**2 value_av=numpy.sqrt(h2/(h2+long_data)) cols_list.append(value_av) cols_list=numpy.hstack(cols_list) # 光线的纵向夹角 col=numpy.max(cols_list) x_max=numpy.argmax(cols_list)//cols_list.shape[1] y_max=numpy.argmax(cols_list)%cols_list.shape[1] # 色差最大的两个点 for i in range(image.shape[0]-2): h2=(image[i:i+1,:, :]-image[i+1:i+2,:, :])**2 value_av=numpy.sqrt(h2/(h2+long_data)) rows_list.append(value_av) rows_list=numpy.vstack(rows_list) # 光线的横向夹角 row=numpy.max(rows_list) x__max=numpy.argmax(rows_list)//rows_list.shape[1] y__max=numpy.argmax(rows_list)%rows_list.shape[1] # 色差最大的两个点 print(image.shape,x_max,y_max,x__max,y__max,col,row) image=cv2.imread("13.jpg") cv2.line(image,(x_max,y_max),(x__max,y__max),5) cv2.imwrite("131.jpg",image) # 光线的横纵夹角才能代表光作用于三维世界 也就是说光平面代表光的方向,人的眼睛可以虚拟出来光平面 # 可以写作z=ax+by # 在long_data=1000000实际比例一定的情况先不同的图片的光平面是不一样的也就是col和row不一样 # 然而一般素描图片两个亮度点距离比较远距离比较立体 # 正常相机拍出来的两个点会十分的接近 所以就是个平面 # 所以根据光平面改造图片 # 最适合的两个点就是光平面和sensor焦线上的点,加入x,y坐标形成的面是sensor(可以是图片)(焦线的两端3分之一处) # 最好是图片的中心作为坐标的中心点 与y的焦点是(图片的一半,-a/b )与x是(-b/a,图片的一半) (负号代表图片的坐下方)这样直接就得出了也不用考虑太多 # 将图片改造参考上面的算法,相邻的点相减,得到h也就是控制相减的h,最后倒退回去,在使用原始图片三个通道的比例分成h即可 if __name__ == '__main__': pass 同理可以实现多个不同位置的感光最大位置 这样多个图片在像视频一样播放是不是会全息 当然这里使用的是最大 也可以使用平均光平面, 还有一个猜想就是一个素描还是普通的图片都是一个光平面, 如果通过上面的方法自定义光平面多个,为一个图片,也是有可能实现全息图片的
这篇关于计算一个全息图片的两个设想的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-06数据结构和算法面试题详解与实战
- 2024-11-06数据结构与算法面试题详解及练习
- 2024-11-06网络请求面试题详解及实战技巧
- 2024-11-06数据结构和算法面试真题详解及备考指南
- 2024-11-06数据结构与算法面试真题解析与练习指南
- 2024-11-06网络请求面试真题详解及实战攻略
- 2024-11-06数据结构和算法大厂面试真题详解与实战
- 2024-11-06数据结构与算法大厂面试真题详解及入门攻略
- 2024-11-06网络请求大厂面试真题详解及应对策略
- 2024-11-06TS大厂面试真题解析与实战指南