相移条纹图案

时间:2019-01-31 11:02:55

标签: python image image-processing pwm

我为这种结构化的光测试创建了条纹图案 (Binary pattern) 使用代码段在python中生成pwm信号

import numpy as np
import cv2

amp=float(input('fringe amplitude:'))
t=float(input('time period:'))
c=int(input('cycle time:'))
dt=1
xpix=np.arange(0,c*t,dt)
ypix=np.zeros_like(xpix)
n=t/dt

i=0
while i*dt< c*t:
    if (i % n)/n < amp/100.0:
        ypix[i]=1
    i=i+1

A =255*np.tile(ypix,(1140,1))
print(A)
i= input('enter value:')
cv2.imwrite('C:\\Users\\newimg'+str(i)+'.bmp', A)

我想将这些信号相移每个信号时间的1/3,以创建两个新的移位图像。有没有办法编辑此代码以执行此代码,或者有更好的/ easier选项使用?

1 个答案:

答案 0 :(得分:0)

关于代码的某些事情对我来说还不是很清楚,但是,如果要移动模式,您只需添加一个变量以定义其移动量,然后通过该变量偏移轴,就像这样:< / p>

import numpy as np
import cv2

amp=float(input('fringe amplitude:'))
t=float(input('time period:'))
c=int(input('cycle time:'))

# this is the shift variable
shift = int(input('shift amount'))

dt=1
xpix=np.arange(0,c*t,dt)
ypix=np.zeros_like(xpix)
n=t/dt

i=0
while i*dt< c*t:
    # Here we offset i by the shift variable.
    # Because we are summing, we are moving everything left by $shift pixels
    # If you want to move right simply insert a negative value in shift
    if ((i + shift) % n)/n < amp/100.0:
        ypix[i]=1
    i=i+1

A =255*np.tile(ypix,(1140,1))
print(A)
i= input('enter value:')
cv2.imwrite('newimg'+str(i)+'.bmp', A)