新生活......

Posted soulmate1023

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新生活......相关的知识,希望对你有一定的参考价值。

  搬到老校区两天了,宿舍的同学都很棒,虽然小黑屋很小,但是大家在一起觉得很惬意,今天在实验室呆了一天,觉得时间真的过得很快,觉得自己还有很多不会,应该用在实验室的时间加紧赶上,用师姐的一句话吧,生活还是需要梦想的。和旁边的师姐沟通,慢慢来学习,还不晚欧。

  今天的收获:

  0.对于不同的验证码有不同的处理方法,但是整合的方法还不太会

  1.灰度化,就是对于一副彩色的图片,对于每一个像素,都是有R,G,B三个分量来各自分配比例调和出来的。

    RGB彩色图像可以看成是由3副单色的灰度图像构成的,可以直接取RGB通道中的任一个通道得到灰度化图像,如技术分享,前提是图像中目标          像素的亮度信息主要分布在B通道上,否则灰度化结果将是亮度信息的大量丢失。灰度图像又叫亮度图像.

         但是要对彩图灰度化时,有4种方法:

    1.1 GRAY=R*0.11+G*0.59+B*0.3    

    1.2 GRAY=MAX(R,G,B)

    1.3 GRAY=MIN(R,G,B)

    1.4 算数平均值

  2.中值滤波,主要是针对椒盐噪点的,用一个3*3的滤波窗口对每一个像素滑动,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值。将该方法重复2-3次,图片已经比较稳定了。

  3.RGB图,灰度图,黑白图,二值化图:

    3.1 RGB图:就是生活中的彩图;每个像素有24位,就是R:8bit,  G:8bit,   B:8bit

    3.2 灰度图:每一个点的R=G=B=GRAY, 每个像素有8位,256个灰度级(2^8)

    3.3 黑白图:只是视觉上的有黑白两色的图;

    3.4 二值化图:就是每一个像素只有1bit,就是两个灰度级的图

  4.验证码识别的基本方法:截图,二值化、中值滤波去噪、分割、紧缩重排(让高矮统一)、字库特征匹配识别

  5.图片二值化的方法汇总(这里参考http://blog.csdn.net/jia20003/article/details/8074627)

    5.1 该方法非常简单,对RGB彩色图像灰度化以后,扫描图像的每个像素值,值小于127的将像素值设为0(黑色),值大于等于127的像素值设为255(白                      色)。该方法的好处是计算量少速度快。缺点更多首先阈值为127没有任何理由可以解释,其次完全不考虑图像的像素分布情况与像素值特征。可以说该                  方法是史最弱智的二值处理方法一点也不为过。

    5.2最常见的二值处理方法是计算像素的平均值K,扫描图像的每个像素值如像素值大于K像素值设为255(白色),值小于等于K像素值设为0(黑色)。该方法                  相比方法一,阈值的选取稍微有点智商,可以解释。但是使用平均值作为二值化阈值同样有个致命的缺点,可能导致部分对象像素或者背景像素丢失。                  二值化结果不能真实反映源图像信息。

    5.3使用直方图方法来寻找二值化阈值,直方图是图像的重要特质,直方图方法选择二值化阈值主要是发现图像的两个最高的峰,然后在阈值取值在两个峰之                   间的峰谷最低处。该方法相对前面两种方法而言稍微精准一点点。结果也更让人可以接受。

    5.4 使用近似一维Means方法寻找二值化阈值,该方法的大致步骤如下:代码见链接

                        1.      一个初始化阈值T,可以自己设置或者根据随机方法生成。

                        2.      根据阈值图每个像素数据P(n,m)分为对象像素数据G1与背景像素数据G2。(n为

                                 行,m为列)

                        3.      G1的平均值是m1, G2的平均值是m2

                        4.      一个新的阈值T’ = (m1 + m2)/2

                        5.      回到第二步,用新的阈值继续分像素数据为对象与北京像素数据,继续2~4步,

                                 直到计算出来的新阈值等于上一次阈值。

  6.一些去噪滤波方法:一种是频率域,一种是空间域

    eg:均值滤波,中值滤波,维纳滤波,图像小波域滤波

            参考:http://wenku.baidu.com/linkurl=9V3jrEyUJJeV6IS_aqM04CkOpD_h27iMA1InhqIEBTKVWbij4g3tbFSPs_dVtINj0bF7XzGtQvq8Ea9K66sa-ZD9sTV0ASgVrqxzqieQsI3

  7.一段有用的二值化代码:

 

def Binarized(Picture):
    Pixels = Picture.load()
    (Width, Height) = Picture.size
  
    Threshold = 80    # 阈值
  
    for i in xrange(Width):
        for j in xrange(Height):
            if Pixels[i, j] > Threshold: # 大于阈值的置为背景色,否则置为前景色(文字的颜色)
                Pixels[i, j] = BACKCOLOR
            else:
                Pixels[i, j] = TEXTCOLOR
    return Picture

  8.python中的image对象的所有方法见http://hereson.iteye.com/blog/2224334

  9.简单的分割方法包括等距分割、积分投影分割、交叉点分割、求连通区等。

  10.python中的一些图像数组操作,参考http://www.2cto.com/kf/201601/487884.html

  11.python很注重缩进,出现unexpected indent就是缩进的问题

    还有一些常见问题 见http://www.oschina.net/question/89964_62779

  12.有一篇好博文,明天继续研究    http://drops.wooyun.org/tips/4550

 

  人要有梦想,但也不能被现实打败。晚安,博客园。

 

以上是关于新生活......的主要内容,如果未能解决你的问题,请参考以下文章

记录下一个软件工程专业大三学生的生活片段

web前端开发JQuery常用实例代码片段(50个)

AI智能剪辑,仅需2秒一键提取精彩片段

FragmentTransaction.remove 没有效果

2020小总结|生活里的spark

ReentrantReadWriteLock场景应用