C#+OpenCV把两个mat图片截成相同的宽高
时间: 2023-08-10 14:59:41 浏览: 98
要将两个Mat图片截取为相同的宽高,您可以使用OpenCV的函数和方法来实现。以下是一种可能的实现方法:
```csharp
using System;
using OpenCvSharp;
class Program
{
static void Main(string[] args)
{
// 加载两个图像
Mat image1 = Cv2.ImRead("image1.jpg");
Mat image2 = Cv2.ImRead("image2.jpg");
// 获取两个图像的宽高
int width1 = image1.Width;
int height1 = image1.Height;
int width2 = image2.Width;
int height2 = image2.Height;
// 计算截取后的宽高
int targetWidth = Math.Min(width1, width2);
int targetHeight = Math.Min(height1, height2);
// 截取图像
Rect roi1 = new Rect(0, 0, targetWidth, targetHeight);
Mat croppedImage1 = new Mat(image1, roi1);
Rect roi2 = new Rect(0, 0, targetWidth, targetHeight);
Mat croppedImage2 = new Mat(image2, roi2);
// 显示截取后的图像
Cv2.ImShow("Cropped Image 1", croppedImage1);
Cv2.ImShow("Cropped Image 2", croppedImage2);
Cv2.WaitKey(0);
}
}
```
在上述示例代码中,我们首先使用Cv2.ImRead函数加载了两个图像,分别存储在image1和image2对象中。然后,我们获取了两个图像的宽高,并计算出截取后的目标宽高。接下来,我们使用Rect对象来定义截取的区域,然后将其传递给Mat对象来实现截取操作。最后,我们使用Cv2.ImShow函数显示截取后的图像,并使用Cv2.WaitKey函数等待用户按下键盘任意键。
请注意,以上代码仅为示例,您需要根据您的具体情况进行相应的修改。希望能对您有所帮助!如有任何疑问,请随时提问。
阅读全文