2019年11月22日开发手记
Posted lvfengkun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019年11月22日开发手记相关的知识,希望对你有一定的参考价值。
开始考虑使用滤波函数,在使用了几个常用的滤波函数后,发现无论是速度还是时间都无法令人满意,于是决定自己写一个。
首先做一个两行的mask掩膜,第一行为0,第二行的前10与后10行为1,在两张图片进入fttmove函数后进行行分割,对分割后的行进行组合并傅里叶变换,将掩膜与该数组相乘,得到低通滤波后的图像,将该图像逆傅里叶变换得到能量图。
再做一个与图像同大小的iimg掩膜,使用np.astype将图像中的点都转化为整型并储存在iimg中,设置一个滤波阈值lvValue,当有元素<lvValue时,将其替换为0,当有元素>255-lvValue时,将其替换为0。使用np.convolve对iimg做卷积运算。最后的得到的动态滤波效果为:
对其提取轮廓画矩形:
得到效果如图所示。
现在处理的效果已经基本满意,接下来就要提取外轮廓,然后准备用Linux进行交叉编译上机了。
想到写手记的时候图像处理阶段其实已经差不多成型了,看看以后有没有时间再来发个总结。下一个阶段就是要进行目标识别以及跟踪了,要用到机器学习的内容。现在的想法就是先大体上搭一个BP神经网络然后疯狂调参,后面要用到什么就现学,嗯,大体上就这样吧,争取本周把图像处理部分搞定,然后再说然后的事。
滤波代码:
def fttmove(frame1, frame2): index = 0 for i in range(0,High,SteppingH): new_gray_array[0,:] = frame1[i,::SteppingW] new_gray_array[1,:] = frame2[i,::SteppingW] f = np.fft.fft2(new_gray_array) f = f * mask ifft2line = np.fft.ifft2(f) iimg[index,:] = ifft2line.astype(np.int)[1,:] #np.astype将图像转换为整型 iimg[index,:][iimg[index,:] > 255 - lvValue] = 0 #有元素> lvvaule替换为值x: iimg[index,:][iimg[index, :] < lvValue] = 0 #有元素<lvValue将其替换为0 iimg[index,:] = np.convolve( iimg[index,:], conMask, mode=‘same‘) #numpy函数中的卷积函数库 # print(‘iimg_arry=‘ + str(iimg[index,:])) # start2 = time.clock() # print(‘Time2:%s‘ % (start2 - start1)) index = index + 1 return iimg
以上是关于2019年11月22日开发手记的主要内容,如果未能解决你的问题,请参考以下文章
;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk