登录
首页 » c++,c » opencv 基于canny算子边缘提取

opencv 基于canny算子边缘提取

于 2022-01-22 发布 文件大小:1,021.83 kB
0 102
下载积分: 2 下载次数: 1

代码说明:

基于opencv   利用canny方法进行边缘检测提取 边缘提取效果较好

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • ADSL宽带拨号 (C#)实例源码下载
    实例截图: 部分源码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Lqarpjj.Study.Demo.ADLSTool.Class;using System.Diagnostics;using System.IO;using Microsoft.Win32;namespace Lqarpjj.Study.Demo.ADLSTool{ public partial class frmMain : Form { #region 自定义变量 /// /// 静态变量存储信息的地址文件 /// private static string ADSLPath = Application.StartupPath @"ADSL.ini"; private static string ConnectionsPath = Application.StartupPath @"create.vbs"; /// /// 定义Ini写入对象 /// private IniWrite ini = new IniWrite(ADSLPath); /// /// 判断第一登录 /// private bool IsFirst = true; /// /// /// private MD5.DES.Md5Class md5 = new MD5.DES.Md5Class(); /// /// /// public static string key = null; #endregion /// /// 构造函数 /// public frmMain() { InitializeComponent(); } #region 窗体事件 /// /// 窗体初始 /// /// /// private void frmMain_Load(object sender, EventArgs e) { SetToolTip(); IntiLoad(sender, e); } #endregion #region 控件按钮事件 /// /// 复制账号 /// /// /// private void btnCopyAccount_Click(object sender, EventArgs e) { if (this.chkSpecial.Checked)//判断特殊拨号是否勾选 { //进行加密 UsernameEncode encode = new UsernameEncode(); Clipboard.SetDataObject(encode.EncodeUsername(this.txtAccount.Text, this.txtPassword.Text)); } else { Clipboard.SetDataObject(this.txtAccount.Text); } MessageBox.Show("账号已经复制到剪贴板!", "复制成功"); } /// /// 拨号 /// /// /// private void btnDia_Click(object sender, EventArgs e) { if (this.txtAccount.Text.Trim() == "") { MessageBox.Show("账号不能为空", "输入错误"); txtAccount.Focus(); return; } if (this.txtPassword.Text.Trim() == "") { MessageBox.Show("密码不能为空", "输入错误"); txtPassword.Focus(); return; } this.NetDia(); } /// /// 找不到电话簿? /// /// /// private void lblNotFind_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { this.CreateConnections(); } /// /// 记住账号联动 /// /// /// private void chkRemAccount_CheckedChanged(object sender, EventArgs e) { if (!this.chkRemAccount.Checked) { this.chkRemPassword.Checked = false; } } /// /// 记住密码联动 /// /// /// private void chkRemPassword_CheckedChanged(object sender, EventArgs e) { if (this.chkRemPassword.Checked) { this.chkRemAccount.Checked = true; } } /// /// 自动登录启动 /// /// /// private void AutoConectTimer_Tick(object sender, EventArgs e) { this.AutoConectTimer.Enabled = false; new frmLinkInfo(this).Show(); base.Hide(); } #endregion #region 自定义方法 /// /// 初始登录 /// /// /// private void IntiLoad(object sender, EventArgs e) { FileInfo info = new FileInfo(ADSLPath); try { if (info.Exists) { this.ReadConfig(); } if (this.chkAutoDia.Checked)//是否自动登录 { this.AutoConectTimer.Start(); } } catch (Exception) { File.Delete(ADSLPath); this.frmMain_Load(sender, e); } } /// ///设置控件提示 /// private void SetToolTip() { ToolTip tip = new ToolTip(); tip.BackColor = System.Drawing.Color.Transparent; tip.SetToolTip(this.btnCopyAccount, "复制账号到剪贴板。如果勾选了特殊拨号,复制的则是加密过的账号。"); tip.SetToolTip(this.btnDia, "手动进行拨号。"); tip.SetToolTip(this.chkAutoDia, "勾选后,下次启动将自动拨号。"); tip.SetToolTip(this.chkSpecial, "如果你原本使用协同拨号器拨号,请勾选此项。"); tip.SetToolTip(this.chkRemPassword, "勾选后,将会保存密码信息,同时保存账号信息。"); tip.SetToolTip(this.chkRemAccount, "勾选后,将会保存账号信息,但不会保存密码信息。"); tip.SetToolTip(this.txtPassword, "在这里输入你的密码。如果有字母,有大小写之分。"); tip.SetToolTip(this.lblNotFind, "如果拨号时提示找不到电话簿,请点击这里。"); tip.SetToolTip(this.txtAccount, "在这里输入你的用户名,如果是特殊拨号不分大小写。"); tip.SetToolTip(this.chkAutoClo, "勾选后拨号成功将自动关闭程序,如果拨号失败,则不会自动关闭。"); } /// /// 写入配置信息 /// private void WriteConfig() { this.ini.Writue("用户设置", "记住账号", this.chkRemAccount.Checked.ToString()); this.ini.Writue("用户设置", "记住密码", this.chkRemPassword.Checked.ToString()); this.ini.Writue("用户设置", "特殊拨号", this.chkSpecial.Checked.ToString()); this.ini.Writue("用户设置", "自动连接", this.chkAutoDia.Checked.ToString()); this.ini.Writue("用户设置", "自动关闭", this.chkAutoClo.Checked.ToString()); this.ini.Writue("用户设置", "首次使用", this.IsFirst.ToString()); if (this.chkRemAccount.Checked) { this.ini.Writue("用户信息", "账号", this.md5.Encryption(this.txtAccount.Text)); this.ini.Writue("加密密钥", "账号", key); } if (this.chkRemPassword.Checked) { this.ini.Writue("用户信息", "密码", this.md5.Encryption(this.txtPassword.Text)); this.ini.Writue("加密密钥", "密码", key); } } /// /// 读取配置信息 /// private void ReadConfig() { this.chkRemAccount.Checked = bool.Parse(this.ini.ReadValue("用户设置", "记住账号")); this.chkRemPassword.Checked = bool.Parse(this.ini.ReadValue("用户设置", "记住密码")); this.chkSpecial.Checked = bool.Parse(this.ini.ReadValue("用户设置", "特殊拨号")); this.chkAutoDia.Checked = bool.Parse(this.ini.ReadValue("用户设置", "自动连接")); this.chkAutoClo.Checked = bool.Parse(this.ini.ReadValue("用户设置", "自动关闭")); this.IsFirst = bool.Parse(this.ini.ReadValue("用户设置", "首次使用")); if (this.chkRemAccount.Checked) { this.txtAccount.Text = this.md5.Decryption(this.ini.ReadValue("加密密钥", "账号"), this.ini.ReadValue("用户信息", "账号")); if (this.txtAccount.Text.Trim() == "") { this.txtAccount.Text = null; } } if (this.chkRemPassword.Checked) { this.txtPassword.Text = this.md5.Decryption(this.ini.ReadValue("加密密钥", "密码"), this.ini.ReadValue("用户信息", "密码")); if (this.txtPassword.Text.Trim() == "") { this.txtPassword.Text = null; } } } /// /// 判断是否是第一次使用本软件 /// private void IsFirstUse() { if (this.IsFirst) { if (MessageBox.Show("检测到您是初次使用本软件,是否自动创建一个名为【宽带连接】的连接?如果已经存在,请选否。", "初次使用", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { this.CreateConnections(); } this.IsFirst = false; this.WriteConfig(); } } /// /// 连接宽带 /// private void NetDia() { this.IsFirstUse(); new frmLinkInfo(this).Show(); base.Hide(); } /// /// 电话簿 /// private void CreateConnections() { Process[] processArray; StreamWriter writer = new StreamWriter(ConnectionsPath, false, Encoding.Default); writer.Write(this.GetVersion()); writer.Close(); Process process = new Process(); process.StartInfo.FileName = ConnectionsPath; process.StartInfo.CreateNoWindow = true; base.Hide(); process.Start(); process.WaitForExit(); File.Delete(ConnectionsPath); Label_006A: processArray = Process.GetProcesses(); foreach (Process process2 in processArray) { if (process2.ProcessName.ToString() == "rasphone") { goto Label_006A; } } base.Show(); } /// /// 获取版本? /// /// private string GetVersion() { StringBuilder str = new StringBuilder(); str.Append(""); str.Append("set ws=createobject("wscript.shell") "); str.Append(" ws.run "rasphone -a 宽带连接" "); str.Append(" wscript.sleep 200 "); str.Append(" ws.sendkeys "{t}" "); str.Append(" wscript.sleep 200 "); str.Append(" ws.sendkeys "{n}" "); str.Append(" wscript.sleep 200 "); str.Append(" ws.sendkeys "{enter}" "); str.Append(" wscript.sleep 200 "); str.Append(" ws.sendkeys "{enter}" "); if (Registry.LocalMachine.OpenSubKey(@"SoftwareMicrosoftWindows NTCurrentVersion").GetValue("ProductName").ToString() == "Windows 7 Ultimate") { str.Append(""); str.Append("set ws=createobject("wscript.shell")"); str.Append(" ws.run "rasphone -a 宽带连接""); str.Append(" wscript.sleep 200"); str.Append(" ws.sendkeys "{enter}""); str.Append(" wscript.sleep 200"); str.Append(" ws.sendkeys "{enter}""); } return str.ToString(); } #endregion }}
    2014-07-16下载
    积分:1
  • 简单的按键控制两位动态数码管
    从99到0循环,按一次减一,比较简单,适合新手学习
    2022-09-27 07:35:02下载
    积分:1
  • 用.net开发的一个博克论坛,可以看贴,回帖,增加新贴。
    用.net开发的一个博克论坛,可以看贴,回帖,增加新贴。-use.NET Developer Forum, a Berkeley, one can see stickers barred, add new stickers.
    2022-01-26 06:03:26下载
    积分:1
  • C# 作的编辑器源代码
    C# 作的编辑器源代码-for the C# source code editor
    2022-03-18 13:26:01下载
    积分:1
  • u disk file protection can be set for u file encryption to ensure safe u disk
    u盘文件保护,可以为u盘文件加密,保证u盘安全-u disk file protection can be set for u file encryption to ensure safe u disk
    2022-03-16 08:59:23下载
    积分:1
  • MD5 c语言源代码
    md5算法简要叙述: md5以64Bytes分组来处理输入的信息,而每一分组又被划分为16个4Bytes子分组,经过一系列处理后,算法的输出为四个4Bytes分组的级联。 拿到待加密信息后,首先需要在末尾填充一个0x80,以及无数个0x00,使得填充后信息的总长度(Bytes)对64求余的结果等于56。之后再填充一个以8Bytes表示的填充前信息长度(bits)。 接下来进入主循环的四轮运算。每一轮都会调用16次相同的函数,但参数不同。每一轮所掉用的函数均不相同。下面直接来看看主循环所掉用的所有函数: 第一轮: FF(a, b, c, d, *M[0], 7, 0xd76aa478);     FF(d, a, b, c, *M[1], 12, 0xe8c7b756);     FF(c, d, a, b, *M[2], 17, 0x242070db);     FF(b, c, d, a, *M[3], 22, 0xc1bdceee);     FF(a, b, c, d, *M[4], 7, 0xf57c0faf);    &n
    2022-10-23 14:20:03下载
    积分:1
  • DWGdirect_NET_3_02
    C#读取CAD文件,并显示文件内容,同时还可以转换CAD文件格式(C# reads the CAD file and displays the contents of the file. At the same time, it can also convert the format of the CAD file.)
    2020-06-21 01:20:08下载
    积分:1
  • mfc 学生信息系统
    (2)利用DoModal()函数对录入数据、数据查询、数据删除的窗后进行调用; (3)录入数据窗口:        将相应的按钮拉进窗口,对界面进行设计并创建一个新的类-----DataInput;然后在类向导中对编辑框设置相应的成员变量;接着对按钮创建消息映射并对添加按钮创建函数;接着在按钮函数上编写代码:先用UpdateData(TRUE)对编辑框的成员变量进行更新,再利用ifstream()将文件读取,判断所输入的学号是否重复,最后用ofstream进行数据写入(权限ios::app-----追加)并关闭文件。 (4)数据查询窗口:        将相应的按钮拉进窗口,对界面进行设计并创建一个新的类-----DataSeeek;然后在类向导中对编辑框设置相应的成员变量;接着对按钮创建消息映射并对添加按钮创建函数;接着在按钮函数上编写代码:先用UpdateData(TRUE)对编辑框的成员变量进行更新,再利用ifstream()将文件读取,判断所输入的学号是否存在,若不存在,输出“无此数据”;否则,将相应的值赋予成员变量,并利用UpdateData(false)对编辑框进行更新,最后关闭文件。 (5)数据删除窗口:        将相应的按钮拉进窗口,对界面进行设计并创建一个新的类-----DataSeeek;然后在类向导中对编辑框设置相应的成员变量;接着对按钮创建消息映射并对添加按钮创建函数;接着在按钮函数上编写代码:先用UpdateData(TRUE)对编辑框的成员变量进行更新、定义4组数组s1[45],s2[45],s3[45],s4[45]用于对储存读取的数据,再利用ifstream()将文件读取,判断所输入的学号是否存在,若不存在,输出“无此信息,无法删除”;否则,记录总数据数、和要删除的数的位置和将数据存入相应4个数组,关闭文件;接着将要删除的数后面的数都往前移
    2022-08-15 01:40:19下载
    积分:1
  • cs写的一个简单的聊天软件
    用cs写的一个简单的聊天软件-cs wrote with a simple chat software
    2023-01-28 23:20:03下载
    积分:1
  • C# 开发的模仿windows的放大镜程序.
    C# 开发的模仿windows的放大镜程序.-C# Developed procedures to imitate the magnifying glass windows.
    2022-03-29 14:38:45下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载