emgu cv 创建两幅图 复制并放大一幅图并画圆
时间: 2024-12-08 09:23:00 浏览: 10
在Emgu CV库中,创建两个图像并复制其中的一幅进行放大并绘制圆形,可以按照以下步骤操作:
1. 首先,需要通过`Image<Bgr, byte>`类型加载两幅图片。例如:
```csharp
using Emgu.CV;
using Emgu.CV.Structure;
// 加载图片
Image<Bgr, byte> image1 = new Image<Bgr, byte>("path_to_image1.jpg");
Image<Bgr, byte> image2 = new Image<Bgr, byte>("path_to_image2.jpg");
```
2. 对于复制并放大的操作,你可以先将`image1`复制到一个新的图像对象中,然后对这个新图像进行缩放。比如,假设你想要将原图放大200%:
```csharp
// 复制原始图像
Image<Bgr, byte> resizedImage = image1.Clone();
// 放大图像
Mat matResized = resizedImage.ToMat();
double factor = 2.0; // 放大因子
Size newSize = new Size(matResized.Width * factor, matResized.Height * factor);
matResized.Resize(newSize, InterpolationTypes.Linear);
resizedImage = new Image<Bgr, byte>(matResized);
```
3. 要在放大后的图像上画圆,可以使用`Circle()`方法。假设你想在图像中心画一个半径为50像素的红色圆形:
```csharp
// 获取图像中心点坐标
Point center = new Point(resizedImage.Width / 2, resizedImage.Height / 2);
// 画圆
Color circleColor = new Color(0, 0, 255); // 红色
int radius = 50;
resizedImage.Circle(center, radius, circleColor, 2, LineType.Automatic, 0);
```
至此,你就成功地在`resizedImage`上复制了`image1`并进行了放大,并在放大后的图像上添加了一个圆形。
阅读全文