我为这种结构化的光测试创建了条纹图案 (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选项使用?
答案 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)