• 获取图像lbp特征


    const getV=require('./getV')
    const numTobase62=require('./numTobase62')
    function getUniformLBPMap() {
      const map={}
      let index=0;
      for(let i=0;i<256;i++){
        let str=i.toString(2);
        str='0'.repeat(8-str.length)+str;
        let first=str[0]
        let count=0
        for(let j=1;j<str.length;j++){
          if(first!==str[j]){
            first=str[j];
            count++
          }
        }
        if(count<3){
          map[str]=index++;
        }else{
          map[str]=58
        }
      }
      return map;
    }
    const uniformLBPMap=getUniformLBPMap()
    
    function getLbpData(grayData) {
      const posArr=[
        [-1,-1],
        [0,-1],
        [1,-1],
        [1,0],
        [1,1],
        [0,1],
        [-1,1],
        [-1,0],
      ]
      const rect={
        grayData.width,
        height:grayData.height,
        data:[]
      }
      for(let y=0;y<grayData.height;y++){
        for(let x=0;x<grayData.width;x++){
          const v1=getV(x,y,grayData);
          const arr= posArr.map(function (arr) {
            const v2=getV(arr[0]+x,arr[1]+y,grayData);
            if(v2>v1){
              return 1
            }else{
              return 0
            }
          })
          rect.data.push(parseInt(arr.join(''),2))
        }
      }
      return rect;
    }
    
    function getUniformLbpData(grayData) {
    
      const posArr=[
        [-1,-1],
        [0,-1],
        [1,-1],
        [1,0],
        [1,1],
        [0,1],
        [-1,1],
        [-1,0],
      ]
      const rect={
        grayData.width,
        height:grayData.height,
        data:[]
      }
      for(let y=0;y<grayData.height;y++){
        for(let x=0;x<grayData.width;x++){
          const v1=getV(x,y,grayData);
         const arr= posArr.map(function (arr) {
            const v2=getV(arr[0]+x,arr[1]+y,grayData);
            if(v2>v1){
              return 1
            }else{
              return 0
            }
          })
          const num=uniformLBPMap[arr.join('')]
          rect.data.push(numTobase62[num])
        }
      }
      return rect;
    }
    
    module.exports={
      getLbpData,getUniformLbpData
    }
    

      

  • 相关阅读:
    轮廓 | outline (Basic User Interface)
    转换 | CSS Transitions (Animations & Transitions)
    越线 | line-break (Text)
    贴士和技巧 | CSS Animations: Tips (Animations & Transitions)
    负 | @counter-style.negative (Counter Styles)
    调整 | resize (Basic User Interface)
    再见乱码:5分钟读懂MySQL字符集设置
    git
    Python 内存&函数调用关系图
    Python 笔记
  • 原文地址:https://www.cnblogs.com/caoke/p/15609245.html
Copyright © 2020-2023  润新知