图像加法
// 两图片必须有相同的大小和位深度 Mat img1 = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\22.jpg", LoadImageType.Color); Mat img2 = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\11.png", LoadImageType.Color); Mat dstImg = new Mat(); CvInvoke.Add(img1, img2, dstImg); //按照权重叠加 CvInvoke.AddWeighted(img1, 0.5, img2, 0.5, 0, dstImg);
图像加减
Mat img1 = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\22.jpg", LoadImageType.Color); Mat img2 = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\11.PNG", LoadImageType.Color); Mat dstImg = new Mat(); //CvInvoke.Subtract(img1, img2, dstImg);//差值 小于0 取0 CvInvoke.AbsDiff(img1, img2, dstImg);//差值的绝对值 CvInvoke.Imshow("result Img", dstImg); CvInvoke.WaitKey(0);
图像的乘除法
Mat img1 = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\22.jpg", LoadImageType.Color); Mat img2 = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\11.PNG", LoadImageType.Color); Mat temp = new Mat(new Size(img1.Cols,img1.Rows),DepthType.Cv8U,3); temp.SetTo(new MCvScalar(1,5,1)); Mat dstImg = new Mat(); CvInvoke.Multiply(img1, temp, dstImg, 1);//矩阵相乘 //CvInvoke.Divide(img1, temp, dstImg, 1);//矩阵相除 CvInvoke.Imshow("result Img", dstImg); CvInvoke.WaitKey(0);
图像逻辑运算 按位操作
Mat img1 = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\111.png", LoadImageType.Color); Mat img2 = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\222.png", LoadImageType.Color); Mat dstImg = new Mat(); //CvInvoke.BitwiseAnd(img1, img2, dstImg);//图像相与 //CvInvoke.BitwiseOr(img1, img2, dstImg);//图像相或 //CvInvoke.BitwiseNot(img1,dstImg);//逻辑非 CvInvoke.BitwiseXor(img1, img2, dstImg);//图像异或 CvInvoke.Imshow("result Img", dstImg); CvInvoke.WaitKey(0);