<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FLY的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/flymoon87</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; flymoon87]]></copyright><item><title><![CDATA[给第三方dll强签名]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/124269835</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/124269835</guid><author>flymoon87</author><pubDate>Tue, 19 Apr 2022 11:58:08 +0800</pubDate><description><![CDATA[强签名的项目引用第三方未签名dll时，异常解决方案。]]></description><category></category></item><item><title><![CDATA[清除失效的托盘图标]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/123637240</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/123637240</guid><author>flymoon87</author><pubDate>Mon, 21 Mar 2022 15:49:50 +0800</pubDate><description><![CDATA[清除应用程序在托盘区域残留的失效图标]]></description><category></category></item><item><title><![CDATA[C# WPF实现TextBox屏蔽非法字符]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/115109374</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/115109374</guid><author>flymoon87</author><pubDate>Tue, 23 Mar 2021 10:10:02 +0800</pubDate><description><![CDATA[本篇文章总结一下，如何在WPF中，通过PreviewKeyDown事件，实现在TextBox中只允许输入数字，屏蔽非法字符。

以前用Winform时，我习惯用KeyPress事件管控TextBox中的字符输入，但是在WPF中，发现没有KeyPress事件了...经过一番研究，发现可以用PreviewKeyDown事件代替。这里说明一下，除了PreviewKeyDown事件，另外还有个KeyDown事件，也可以实现类似的功能，不过和PreviewKeyDown相比，KeyDown事件并不完美，因为有些按键不]]></description><category></category></item><item><title><![CDATA[C#动态加载第三方DLL]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/112609650</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/112609650</guid><author>flymoon87</author><pubDate>Thu, 14 Jan 2021 15:14:59 +0800</pubDate><description><![CDATA[C#动态加载第三方DLL

当我们需要加载第三方非托管DLL时，通常会直接使用DllImport的方式，代码如下：


[DllImport("GetFile.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode)]
static extern string GetFileData(string fileName);



上图的调用方式，默认GetFile.dll文件位于与调用程序（.exe文件）相同.]]></description><category></category></item><item><title><![CDATA[C# ShowCursor使用心得]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/102654579</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/102654579</guid><author>flymoon87</author><pubDate>Sun, 20 Oct 2019 22:09:03 +0800</pubDate><description><![CDATA[在C#中，可通过ShowCursor()函数，进行光标的显示和隐藏，使用方式如下：

1. 首先引用命名空间：using System.Runtime.InteropServices;

2. 写入以下语句：

[DllImport("user32", EntryPoint = "ShowCursor")]

public extern staticintShowCursor(bool sho...]]></description><category></category></item><item><title><![CDATA[VS2019   Emgu CV环境搭建]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/102633318</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/102633318</guid><author>flymoon87</author><pubDate>Fri, 18 Oct 2019 23:17:10 +0800</pubDate><description><![CDATA[C/C++中用的是OpenCV，而C#里用的则是EmguCV。EmguCV是使用.NET编程语言（C#）对OpenCV函数进行了封装，使其可以在.NET平台上调用OpenCV的功能。对于刚开始接触EmguCV的人来说，如果配置不好会有异常。经过网上查找资料并实践，我目前已解决报错问题，下面把环境搭建过程写出来供大家参考。

我电脑是Win10 64位家庭版，EmguCV版本是libemgucv-w...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（十二）示例程序：直方图均衡化（彩色图像）]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82857352</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82857352</guid><author>flymoon87</author><pubDate>Wed, 26 Sep 2018 21:53:21 +0800</pubDate><description><![CDATA[本示例是《OpenCV3编程入门》中7.5.3中的示例程序的C# + EMGU 3.4.1版，演示了如何用EqualizeHist()函数进行图像的直方图均衡化。

原书代码仅演示了对灰度图像的直方图均衡化，对此我做了一些改变，从而可对彩色图像进行直方图均衡化。

彩色图像的直方图均衡化说明

由于opencv自带的函数是对灰度图像进行直方图均衡化的，所以在需要对彩色图像进行直方图均衡化时，不可直...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（十一）示例程序：仿射变换]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82855503</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82855503</guid><author>flymoon87</author><pubDate>Wed, 26 Sep 2018 16:41:30 +0800</pubDate><description><![CDATA[本示例是《OpenCV3编程入门》中7.4.5中的示例程序的C# + EMGU 3.4.1版，演示了以WarpAffine和GetRotationMatrix2D函数为核心的对图像进行仿射变换的操作。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Syste...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（十）综合示例：实现多种重映射]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82850914</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82850914</guid><author>flymoon87</author><pubDate>Wed, 26 Sep 2018 11:42:53 +0800</pubDate><description><![CDATA[本示例是《OpenCV3编程入门》中7.3.4中的综合示例程序的C# + EMGU 3.4.1版，演示了重映射函数remap的用法，并可以通过按键控制四种不同的映射模式。

其中要变换的四种模式如下：

1. 图像宽高缩小一半，并居中显示：

映射方法函数h(i,j) = (2 * j - src.cols / 2 + 0.5, 2 * i - src.rows / 2 + 0.5)，所有成对的参...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（九）示例程序：基本重映射]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82846826</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82846826</guid><author>flymoon87</author><pubDate>Tue, 25 Sep 2018 23:40:32 +0800</pubDate><description><![CDATA[本示例是《OpenCV3编程入门》中7.3.2中的示例程序的C# + EMGU 3.4.1版，这个示例演示了重映射函数remap的用法，与C++ OpenCv的版本相比，有如下几点需要注意：

1. C# EMGU中，不能用类似map_x.at&amp;lt;float&amp;gt;(i,j)的形式遍历mat中的元素；

2. 为了实现mat元素的遍历，替代的方法是，首先获得mat变量的首地址（指针），然后通过...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（八）示例程序：霍夫圆变换HoughCircles函数]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82830608</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82830608</guid><author>flymoon87</author><pubDate>Mon, 24 Sep 2018 18:08:32 +0800</pubDate><description><![CDATA[霍夫圆变换的基本思路是认为图像上每一个非零像素点都有可能是一个潜在的圆上的一点，跟霍夫线变换一样，也是通过投票，生成累积坐标平面，设置一个累积权重来定位圆。

在笛卡尔坐标系中圆的方程为：





其中（a,b）是圆心，r是半径，也可以表述为：



即：



所以在abr组成的三维坐标系中，一个点可以唯一确定一个圆。 而在笛卡尔的xy坐标系中经过某一点的所有圆映射到abr坐标系中就是一条三维...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（七）示例程序：标准霍夫变换HoughLines函数]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82825248</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82825248</guid><author>flymoon87</author><pubDate>Sun, 23 Sep 2018 22:33:10 +0800</pubDate><description><![CDATA[本示例是《OpenCV3编程入门》中7.2.4的示例程序的C# + EMGU 3.4.1版，关于C# EMGU中的霍夫变换，有如下几点需要注意：

1. HoughLines函数检测出来的不是线段，而是(ρ,θ)对，在C++ OpenCv中，使用std::vector&amp;lt;Vec2f&amp;gt; lines来存放，而在C# EMGU中，则用EMGU.CV.Util.VectorOfPointF li...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（六）综合示例：边缘检测]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82818299</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82818299</guid><author>flymoon87</author><pubDate>Sat, 22 Sep 2018 22:36:21 +0800</pubDate><description><![CDATA[本示例是《OpenCV3编程入门》中7.1.6的综合示例的C# + EMGU 3.4.1版，在这个示例程序中，分别演示了canny边缘检测、sobel边缘检测、Laplacian算子，scharr滤波器的使用，经过详细注释的代码如下：


using System;
using System.Collections.Generic;
using System.ComponentModel;
usi...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（五）示例程序：基本阈值操作]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82794962</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82794962</guid><author>flymoon87</author><pubDate>Thu, 20 Sep 2018 23:16:18 +0800</pubDate><description><![CDATA[本示例是《OpenCV3编程入门》中6.7.3的示例程序的C# + EMGU 3.4.1版，比较简单，代码如下：


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
usin...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（四）综合示例：漫水填充]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82743923</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82743923</guid><author>flymoon87</author><pubDate>Mon, 17 Sep 2018 16:29:48 +0800</pubDate><description><![CDATA[本示例是《OpenCV3编程入门》中6.5.4的示例程序的C# + EMGU 3.4.1版，和C++程序相比，有以下几点不同：

1. 使用winform实现，主要控件有：MenuStrip（用于显示程序操作说明），ImageBox（用于显示图片），RichTextBox（用于记录并显示程序操作过程），TrackBar（用于变更负差最大值和正差最大值）。

2. 使用KeyDown事件，实现键盘按...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（三）综合示例：形态学滤波（腐蚀/膨胀、开运算/闭运算、顶帽运算/黑帽运算）]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82321019</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82321019</guid><author>flymoon87</author><pubDate>Mon, 03 Sep 2018 00:04:48 +0800</pubDate><description><![CDATA[以下是《OpenCV3编程入门》中6.4.9的示例程序的C# + EMGU 3.4.1版：

有任何问题或疑问，欢迎交流探讨。


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Lin...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（二）XML和YAML文件的写入]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82283839</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82283839</guid><author>flymoon87</author><pubDate>Sat, 01 Sep 2018 07:20:00 +0800</pubDate><description><![CDATA[以下是《OpenCV3编程入门》中5.6.3的示例程序的C# + EMGU 3.4.1版，和C++程序相比，有如下几点不同：

1. 使用Matrix&amp;lt;&amp;gt;存储多维数组，多维数组的各维需要使用{}扩起来，之间用逗号分隔；

2. C#中无法使用&amp;lt;&amp;lt;和&amp;gt;&amp;gt;实现流的输入和输出，对应于&amp;lt;&amp;lt;的是Insert和Write函数，Insert函数只能插入string...]]></description><category></category></item><item><title><![CDATA[C# EMGU 3.4.1学习笔记（一）离散傅里叶变换]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/82179550</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/82179550</guid><author>flymoon87</author><pubDate>Wed, 29 Aug 2018 10:51:43 +0800</pubDate><description><![CDATA[最近在学习OpenCV3编程入门（毛星云编著）这本书，书中的示例都是用C++写的，而自己用的是C#，配合EMGU 3.4.1版本，网上的资料非常非常少，很多时候遇到问题，都找不到解决方法。为了记录自己的学习过程，也为了后来的学习者能有资料参考，在此分享自己转化后的C# EMGU3.4.1版本的代码。

下面是原书中5.5.8章节的一个示例程序：离散傅里叶变换，我用C#配合EMGU 3.4.1.29...]]></description><category></category></item><item><title><![CDATA[C#入门经典 第6版 练习4.6（2）]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/72772810</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/72772810</guid><author>flymoon87</author><pubDate>Fri, 26 May 2017 18:56:49 +0800</pubDate><description><![CDATA[（2）编写一个应用程序，其中包含练习（1）中的逻辑，要求用户输入数字，并显示它们，但拒绝接受两个数字都大于10的情况，并要求用户重新输入。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ch]]></description><category></category></item><item><title><![CDATA[C#入门经典 第6版 练习3.6（5）]]></title><link>https://blog.youkuaiyun.com/flymoon87/article/details/72730023</link><guid>https://blog.youkuaiyun.com/flymoon87/article/details/72730023</guid><author>flymoon87</author><pubDate>Thu, 25 May 2017 15:36:21 +0800</pubDate><description><![CDATA[（5）编写一个控制台应用程序，要求用户输入4个int值，并显示它们的乘积。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Chapter3_5
{
    class Program
   ]]></description><category></category></item></channel></rss>