码迷,mamicode.com
首页 > 其他好文 > 详细

2019年11月22日开发手记

时间:2019-11-22 23:23:42      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:div   交叉编译   阈值   span   py函数   跟踪   idt   pre   com   

开始考虑使用滤波函数,在使用了几个常用的滤波函数后,发现无论是速度还是时间都无法令人满意,于是决定自己写一个。

首先做一个两行的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日开发手记

标签:div   交叉编译   阈值   span   py函数   跟踪   idt   pre   com   

原文地址:https://www.cnblogs.com/lvfengkun/p/11914712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!