zoukankan      html  css  js  c++  java
  • 获取图像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
    }
    

      

  • 相关阅读:
    nginx日志格式字段
    set_include_path和get_include_path用法详解
    nginx try_files 详解
    ul ol li的序号编号样式
    PHP中报500错误时如何查看错误信息
    nginx的access.log文件详解
    一些常用服务命令和配置目录
    PHP 使用 Redis
    HTML5-indexedDB使用常见错误总结
    浏览器数据库 IndexedDB 入门
  • 原文地址:https://www.cnblogs.com/caoke/p/15609245.html
Copyright © 2011-2022 走看看