zoukankan      html  css  js  c++  java
  • 图像增强算法

    1.直接上代码:

      

    /// <summary>
            /// 增强图像因子改变(imageArray)
            /// </summary>
            /// <param name="rawDataArray">摄像头得到的二维short矩阵</param>
            /// <param name="iImageHeight">rawDataArray高</param>
            /// <param name="iImageWidth">rawDataArray宽</param>
            /// <param name="rawImageArray">表示要显示图像的byte矩阵</param>
            public void enhancePar(short[,] rawDataArray, int iImageHeight, int iImageWidth, ref byte[,] rawImageArray)
            {
                int gamma = int.Parse(inifile.ReadString("Config", "gamma", "255"));
                //int gamma = vScrollBarHeight.Value * 255 / vScrollBarHeight.Maximum;
                if (rawDataArray == null) return;
                short[] HistoryData = new short[5000];
                byte[] LUT = new byte[5000];
                int i, j;
                //int shangX=vScrollBarHeight.Maximum - vScrollBarHeight.Value;
                //int xiaX=vScrollBarHeight.Maximum - vScrollBarHeight.Value - (int)(double.Parse(TextWindowWidth.Text) * 100);
                //Console.WriteLine(shangX+"   "+xiaX);
                for (j = 0; j < iImageHeight; j++)
                    for (i = 0; i < iImageWidth; i++)
                    {
                        if (rawDataArray[i, j] <= 0)
                        {
                            continue;
                        }
                        if (rawDataArray[i, j] >= (vScrollBarHeight.Maximum - vScrollBarHeight.Value))//如果大于赋色彩窗体最高值
                        {
                            rawDataArray[i, j] = 0;
                        }
                        if (rawDataArray[i, j] <= (vScrollBarHeight.Maximum - vScrollBarHeight.Value - double.Parse(TextWindowWidth.Text) * 100))//如果小于赋色彩窗体最低值
                        {
                            rawDataArray[i, j] = 0;
                        }
                        HistoryData[rawDataArray[i, j]]++;
                    }
                int sum = 0, HistorySum = 0;
    
                for (i = 0; i < 5000; i++)//对255灰阶进行着重处理
                {
                    if (HistoryData[i] > 10)
                    {
                        HistoryData[i] = 10;
                    }
                    if (HistoryData[i] < 3)
                    {
                        HistoryData[i] = 0;
                    }
                    HistorySum += HistoryData[i];
                }
                sum = 0;
                for (i = 0; i < 5000; i++)
                {
                    //if (HistoryData[i] == 0)
                    //{
                    //    LUT[i] = (byte)(1);
                    //    continue;
                    //}
                    sum += HistoryData[i];
                    if (HistorySum != 0)
                    {
                        LUT[i] = (byte)((sum * gamma / HistorySum + 1) >= 254 ? 254 : (sum * gamma / HistorySum + 1));//得到图像矩阵
                    }
                    else
                    {
                        LUT[i] = (byte)(1);
                    }
                }
                for (j = 0; j < iImageHeight; j++)
                    for (i = 0; i < iImageWidth; i++)
                    {
                        if (rawDataArray[i, j] < 0)
                        {
                            continue;
                        }
                        else
                        {
                            rawImageArray[i, j] = LUT[rawDataArray[i, j]];//赋值给界面显示的图像矩阵
                        }
                    }
            }

                 注:此代码有点简单,可深究图像增强算法。

  • 相关阅读:
    后缀零
    vs2019 MFC的安装 解决 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。
    矩形切割
    fsync: failed to connect to feed.openvas.org (89.146.224.58)
    How to Install GVM Trial With VMware Workstation Player/Pro
    GVM 21.04 (stable, initial release 20210416)
    gitlab 升级相关
    Adobe Reader XI 11.0.23 简体中文版
    gofileserver GO HTTP 文件下载服务器
    KVM 中安装 Windows 10 虚拟机、CentOS 8 虚拟机及快照操作
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/9579787.html
Copyright © 2011-2022 走看看