C# EmguCV学习笔记(一)---图像加减法操作

图像加法:

使用Image.Add()方法,可以让两张图片相加,或者让当前图像加上一个色彩值,另外你也可以使用CvInvoke.Add()方法执行相同的操作。

Image.Add()方法内部就是调用CvInvoke.Add()方法实现的。

Image.Add()有3个实现,每个实现的返回都是一个相同色彩空间、值类型的Image对象:

///<summary> 当前图片与另外一张图片相加,另外一张图片必须与当前图片是相同的类型和尺寸(或相同ROI尺寸) </summary>
2       ///<param name="img2">与当前图片相加的图片</param>
3       ///<returns> 相加的结果</returns>
4       public Image<TColor, TDepth> Add(Image<TColor, TDepth> img2)


///<summary> 当前图片与另外一张图片相加(ret(I)=src1(I)+src2(I) if mask(I)!=0),另外一张图片必须与当前图片是相同的类型和尺寸(或形同ROI尺寸)</summary>
2       ///<param name="img2">另一张图片</param>
3       ///<param name="mask">掩膜图片</param>
4       ///<returns> 使用掩膜图片相加的结果</returns>
5       public Image<TColor, TDepth> Add(Image<TColor, TDepth> img2, Image<Gray, Byte> mask)


///<summary> 当前图片加上一个色彩值 </summary>
2       ///<param name="val"> 色彩值 </param>
3       ///<returns> 相加的结果 <paramref name="val"/> from the current image</returns>
4       public Image<TColor, TDepth> Add(TColor val)

在设计界面添加4个pictureBox控件,用来显示处理的图片:


转到代码:


                
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用EMGU.CV进行图像分类训练和测试的C#代码示例: ```csharp using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.ML; using Emgu.CV.Structure; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ImageClassification { class Program { static void Main(string[] args) { // Load the training data Matrix<float> trainingData = new Matrix<float>(new float[,] { { 100, 200 }, { 150, 250 }, { 200, 300 }, { 250, 350 }, { 300, 400 }, { 350, 450 }, { 400, 500 }, { 450, 550 } }); // Load the labels for the training data Matrix<float> labels = new Matrix<float>(new float[,] { { 0 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 }, { 1 }, { 1 } }); // Initialize the SVM model SVM model = new SVM(); // Set the SVM parameters var svmParams = new MCvSVMParams() { KernelType = SVM_KERNEL_TYPE.LINEAR, C = 1, Gamma = 0.5, TermCrit = new MCvTermCriteria(100, 0.00001) }; // Train the SVM model model.Train(trainingData, labels, null, null, svmParams); // Load the test data Matrix<float> testData = new Matrix<float>(new float[,] { { 125, 225 }, { 225, 325 }, { 325, 425 }, { 425, 525 } }); // Predict the labels for the test data Matrix<float> predictedLabels = new Matrix<float>(testData.Rows, 1); model.Predict(testData, predictedLabels); // Output the predicted labels Console.WriteLine("Predicted Labels:"); for (int i = 0; i < predictedLabels.Rows; i++) { Console.WriteLine(predictedLabels[i, 0]); } // Wait for user input Console.ReadLine(); } } } ``` 上面的代码演示了如何使用EMGU.CV进行图像分类的训练和测试。在此示例中,我们使用了一个简单的线性SVM模型来预测输入数据的标签。我们首先加载训练数据和标签,然后使用SVM.Train方法训练模型。一旦我们训练好了模型,我们就可以加载测试数据,并使用SVM.Predict方法预测测试数据的标签。最后,我们可以输出预测的标签以进行检查。 需要注意的是,此示例是基于简单的数值输入数据进行训练和测试的,实际上在图像分类中需要使用更复杂的特征提取和预处理方法,以及更大的数据集来训练和测试模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值