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日开发手记的主要内容,如果未能解决你的问题,请参考以下文章

2019年12月1日Linux开发手记

;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk

9.24 11.5 12.14

Scrum硬件敏捷产品开发(CSM认证)| 2019年11月8-9日·全国首发!

2019年8月22日 星期四(杂谈)

Android系统各个版本发布时间