【条纹结构光投影】正反格雷码解相算法分享,仅供交流学习

正反格雷码解相算法,python实现分享,仅供交流学习
此为四步相移+正反格雷码算法的包裹相->展开相
更多传送门:
【条纹结构光投影】分享一下四步相移的代码,仅供交流学习
【条纹结构光投影】相位图去噪算法分享,仅供交流学习

P_img = io.imread('normal.tiff')

height,width = P_img.shape

ori_img_gray = []

# 4张正格雷码 + 4张反格雷码
for i in range(5, 13):
	ori_img_gray.append(io.imread(str(i) + '.bmp'))

gray1 = np.zeros((height, width))
gray2 = np.zeros((height, width))
unwrap = np.zeros((height, width))

g_code = 0
b_code = [0] * 8

double_pi = math.pi * 2

for i in range(height):
	for j in range(width):
		for k in range(4):

			if ori_img_gray[k][i, j] > ori_img_gray[k + 4][i, j]:
				g_code = 0
			else:
				g_code = 1
			if k == 0:
				b_code[k] = g_code
			elif b_code[k - 1] != g_code:
				b_code[k] = 0
			else:
				b_code[k] = 1

		gray1[i, j] = b_code[0] * 4 + b_code[1] * 2 + b_code[2]
		gray2[i, j] = gray1[i, j] * 2 + b_code[3]

		if P_img[i, j] <= - double_pi / 4:
			unwrap[i, j] = P_img[i, j] + double_pi * gray1[i, j] + double_pi
		elif P_img[i, j] > - double_pi / 4 and P_img[i, j] < double_pi / 4:
			unwrap[i, j] = P_img[i, j] + double_pi * math.ceil(gray2[i, j] / 2)
		else:
			unwrap[i, j] = P_img[i, j] + double_pi * gray1[i, j]

io.imsave('unwrap.bmp', unwrap)
io.imsave('unwrap.tiff', unwrap)
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值