zoukankan      html  css  js  c++  java
  • 图像处理基本算法之灰度拉伸 from(同串口)

    图像处理-基本算法之灰度拉伸       

    分类: 图像处理152人阅读评论(0)收藏举报
    灰度拉伸是图像增强的一种,它是把分离的灰度转换到比较集中的程度,这时就更利于分析。

      代码如下:

    1. /******************************************************************************   
    2. *   作用:     灰度均衡函数
    3. *   参数: pDst     输出图像的像素数组
    4. *   参数: pSrc     原始图像的像素数组
    5. *   参数: nWidth   原始图像宽度
    6. *   参数: nHeight  原始图像高度
    7. ******************************************************************************/
    8. int GrayEqualize(BYTE* pDst,BYTE* pSrc, int nWidth,int nHeight) 
    9.     if (!pSrc || !pDst) 
    10.     { 
    11.         return EXIT_FAILURE; 
    12.     } 
    13.  
    14.     // 灰度映射表 
    15.     BYTE map[256]; 
    16.     long lCounts[256];
    17.  
    18.     memset(lCounts, 0, sizeof(long) * 256);
    19.  
    20.     int i; 
    21.  
    22.     // 计算各灰度值个数 
    23.     for (i = 0; i < nWidth * nHeight; i++)
    24.     { 
    25.         int x = pSrc[i * 4]; 
    26.         lCounts[x]++; 
    27.     } 
    28.  
    29.     // 保存运算中的临时值 
    30.     long lTemp; 
    31.  
    32.     for (i = 0; i < 256; i++)
    33.     { 
    34.         lTemp = 0; 
    35.         for (int j = 0; j <= i; j++)
    36.             lTemp += lCounts[j]; 
    37.  
    38.         map[i] = (BYTE)(lTemp * 255.0f / nWidth / nHeight);
    39.     } 
    40.  
    41.     // 变换后的值直接在映射表中查找 
    42.     for (i = 0; i < nWidth * nHeight; i++)
    43.     { 
    44.         int x = pSrc[i * 4];
    45.  
    46.         pDst[i*4] = pDst[i*4+1] = pDst[i*4+2] = map[x]; 
    47.         pDst[i*4+3] = 255; 
    48.     } 
    49.  
    50.     return EXIT_SUCCESS;
  • 相关阅读:
    致敬我的2015
    葡萄城报表-导出输出
    葡萄城报表-内网发布
    葡萄城报表-核心代码展示
    点滴积累--工作总结
    解决WPF中ListViewItem对齐问题
    IIS上传文件失败
    HTTP 错误 404.4
    端口及IP复习
    请考虑将 "await" 运算符应用于调用结果
  • 原文地址:https://www.cnblogs.com/gosteps/p/2994253.html
Copyright © 2011-2022 走看看