验证吗

 

/*********************************
 *
 * FileName:validate.cs
 * Copyright:(c) 2007-2-1
 * Writer:星星
 * Create Date:2007-2-1
 * Rewriter:
 * Rewrite Date:
 * Impact:
 * Main Content:验证码 可以启中文验证码(可以自行修改,但请存留以上信息)  
 *
 *********************************/

using System;
using System.Text;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;


/// <summary>
///  验证码
/// </summary>
namespace ImageValidate
{
    /// <summary>
    /// 验证码
    /// </summary>
    /// <param name="m_nDisturbLine">干扰线</param>
    /// <param name="m_nDisturbPoint">干扰点</param>
    /// <param name="m_strFontSize">字体大小</param>
    /// <param name="m_strValidate">验证码字符串</param>
    public class Validate
    {
        #region 变量声明
        int     m_nDisturbLine , m_nDisturbPoint ;
        int     m_strFontSize = 13;
        string  m_strFont = "宋体";
        string  m_strValidate=null;
        #endregion

        #region 构造函数
        /// <summary>
        ///
        /// </summary>
        /// <param name="nDisturbLine">干扰线</param>
        /// <param name="nDisturbPoint">干扰点</param>
        public Validate(int nDisturbLine, int nDisturbPoint)
        {
            this.m_nDisturbLine = nDisturbLine;
            this.m_nDisturbPoint = nDisturbPoint;
        }
        #endregion

        #region  属性
        /// <summary>
        /// 获取验证码字符串 用以保存在Session
        /// </summary>
        public string strValidate
        {
            get { return this.m_strValidate; }
        }

        /// <summary>
        /// 设置或获取验证码字体
        /// </summary>
        public string strFont
        {
            get { return this.m_strFont; }
            set { this.m_strFont = value; }
        }

        /// <summary>
        /// 设置或获取验证码字体大小
        /// </summary>
        public int nFontSize
        {
            get { return this.m_strFontSize; }
            set { this.m_strFontSize = value; }
        }
        #endregion

        /// <summary>
        /// 获取字母数字验证码字符串
        /// </summary>
        /// <param name="nLength">验证码字符个数</param>
        /// <returns>验证码字符串</returns>
        private string GetStrAscii(int nLength)
        {
            int     nStrLength  = nLength;
            string  strString   = "1234567890qwertyuioplkjhgfdsazxcvbnmASDFGHJKLMNBVCXZQWERTYUIOP";
            StringBuilder strtemp = new StringBuilder();  
            Random random = new Random((int)DateTime.Now.Ticks);
            for (int i = 0; i < nStrLength; i++)
            {
                random = new Random(unchecked(random.Next() * 1000));
                strtemp.Append(strString[random.Next(61)]);
            }
            return strtemp.ToString();
        }


        /// <summary>
        /// 获取中文验证码字符串
        /// </summary>
        /// <param name="nLength">验证码字符中文的个数</param>
        /// <returns>验证码字符串(中文)</returns>
        private string GetStrChinese(int nLength)
        {
            int      nStrLength = nLength;
            object[] btStrings  = new object[nStrLength];
            string[] strString  = new String[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

            Random random = new Random();
            for (int i = 0; i < nStrLength; i++)
            {
                //区位码第1位  
                int     nNext1   = random.Next(11, 14);
                string  strChar1 = strString[nNext1];

                //区位码第2位  
                random = new Random(nNext1 * unchecked((int)DateTime.Now.Ticks) + i);//更换随机数发生器的  

                int nNext2;
                if (nNext1 == 13)
                {
                    nNext2 = random.Next(0, 7);
                }
                else
                {
                    nNext2 = random.Next(0, 16);
                }
                string strChar2 = strString[nNext2];

                //区位码第3位  
                random  = new Random(nNext2 * unchecked((int)DateTime.Now.Ticks) + i);
                int     nNext3   = random.Next(10, 16);
                string  strChar3 = strString[nNext3];

                //区位码第4位  
                random  = new Random(nNext3 * unchecked((int)DateTime.Now.Ticks) + i);
                int nNext4;
                if (nNext3 == 10)
                {
                    nNext4 = random.Next(1, 16);
                }
                else if (nNext3 == 15)
                {
                    nNext4 = random.Next(0, 15);
                }
                else
                {
                    nNext4 = random.Next(0, 16);
                }
                string strChar4 = strString[nNext4];

                byte    bt1      = Convert.ToByte(strChar1 + strChar2, 16);
                byte    bt2      = Convert.ToByte(strChar3 + strChar4, 16);
                byte[]  btString = new byte[2] { bt1, bt2 };

                btStrings.SetValue(btString, i);
            }

            //转化成汉字
            StringBuilder   strReturn = new StringBuilder();
            Encoding        edGb2312 = Encoding.GetEncoding("gb2312");
            for (int i = 0; i < nStrLength; i++)
            {
                strReturn.Append(edGb2312.GetString((byte[])Convert.ChangeType(btStrings[i], typeof(byte[]))));
            }
            return strReturn.ToString();
        }

        /// <summary>
        /// 获取验证码图片
        /// </summary>
        /// <param name="nValidateLength">验证码字符个数</param>
        /// <param name="nImgWidth">图片宽度</param>
        /// <param name="nImgHeight">图片高度</param>
        /// <returns>流的图片</returns>
        public MemoryStream GetCode(int nType,int nValidateLength ,int nImgWidth, int nImgHeight)
        {
            MemoryStream    stream = null;

            if (nType == 0)    //是否启用汉字验证码
            {
                m_strValidate = this.GetStrChinese(nValidateLength);
            }
            else
            {
                m_strValidate = this.GetStrAscii(nValidateLength);
            }
         
            Bitmap      image = new Bitmap(nImgWidth, nImgHeight);
            Graphics    grImg = Graphics.FromImage(image);
            try
            {
                Random  random = new Random();
                grImg.Clear(Color.White);//清空图片背景色

                //画图片的干扰线
                for (int i = 0; i < m_nDisturbLine; i++)
                {
                    int x1 = random.Next(image.Width);
                    int x2 = random.Next(image.Width);
                    int y1 = random.Next(image.Height);
                    int y2 = random.Next(image.Height);
                    grImg.DrawLine(new Pen(Color.SkyBlue), x1, y1, x2, y2);
                }

                Font font = new Font(m_strFont, m_strFontSize, FontStyle.Bold);
                LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Black, 10.2f, false);
                grImg.DrawString(m_strValidate, font, brush, 3, 2);
               
                //画图片的前景干扰点
                for (int i = 0; i < m_nDisturbPoint; i++)
                {
                    int x = random.Next(image.Width);
                    int y = random.Next(image.Height);
                    image.SetPixel(x, y, Color.FromArgb(random.Next()));
                }
                grImg.DrawRectangle(new Pen(Color.Olive), 0, 0, image.Width - 1, image.Height - 1);//画图片的边框线
                //保存图片数据
                stream = new MemoryStream();
                image.Save(stream, ImageFormat.Jpeg);
            }
            finally
            {
                grImg.Dispose();
                image.Dispose();
            }
            return stream;
        }
    }
}
 

 

//====================
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Drawing"%>
<%@ Import Namespace="System.Drawing.Drawing2D"%>
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Drawing.Imaging"%>
<%@ Import Namespace="System.Text"%>
<%@ Import Namespace="ImageValidate"%>
<script runat="server">
   void page_load(object sender , EventArgs e)
    {
        Validate validate = new Validate(12, 50);
        validate.strFont = "宋体";
        validate.nFontSize = 13;
        MemoryStream stream = validate.GetCode(0, 4, 82, 22);
      
        Response.Clear();
        Response.ContentType = "image/jpeg";
        Response.BinaryWrite(stream.ToArray());

        stream.Close();
    }
</script>

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值