zoukankan      html  css  js  c++  java
  • 图像双三次插值中遇到的问题(镶边、错误点)

    测试图像:

    src3.bmp 0 2 tar

    src3.bmp 37.5 2 tar:会出现小点(其值为205)

    分析原因是该处点未赋值!

    可以发现若缩小循环后,所有未赋值的点都会是205。

     

    具体分析是if语句条件没判别全,导致有点没被覆盖上赋值。if=255没考虑。

                    if(middle<255)
                    pbTag[y*2*iWidth+x]=middle;
                    else if(middle>255)
                        pbTag[y*2*iWidth+x]=255;

    应改为:

    if(middle<=255)
                    pbTag[y*2*iWidth+x]=middle;
                    else if(middle>255)
                        pbTag[y*2*iWidth+x]=255;

    // if(middle>255)
    // pbTag[y*2*iWidth+x]=255;
    // else
    // pbTag[y*2*iWidth+x]=middle;

    会发现并不是全白的!隐约会看到灰色块!其值为254!

     

     对于镶边的问题也是插值后值的问题:

    某些值为负值!

    应加入判断:

                    if(middle<=255&&middle>=0)
                    pbTag[y*2*iWidth+x]=middle;
                    else if(middle>255)
                        pbTag[y*2*iWidth+x]=255;
                    else 
                        pbTag[y*2*iWidth+x]=0;

    还是能看到平坦区域的254和255差别。

  • 相关阅读:
    第19篇 2016年计划
    第18篇 我的中国梦
    Linux中文件实时同步
    Ansible Playbook
    Ansible简介及常用模块
    HTTP协议简单认识
    zabbix 分布式监控Proxy
    Zabbix中Agent自动注册
    Groovy基础语法
    Python文件操作
  • 原文地址:https://www.cnblogs.com/wxl845235800/p/9210594.html
Copyright © 2011-2022 走看看