【发布时间】:2022-01-12 06:18:19
【问题描述】:
我正在制作标签工具。
目标:通过在图片上绘制多边形,将多边形里面的图像导出到外面。
这是我在我的程序中画的。
但我不知道如何提取这个区域。我想知道如何提取这个区域。 我已将上图的顶点保存在一个对象中。但是我不知道如何通过这些顶点从图像中提取数据
=========================================
所以我找到了这个。 https://www.codeproject.com/Articles/703519/Cropping-Particular-Region-In-Image-Using-Csharp
但它不起作用
Can't convert Bitmap to IplImage
出于同样的原因,它不起作用。 在帖子中,我打算使用opencvsharp 4.x,但是我现在正在修复的程序是.netframework 3.5,所以它不支持opencvsharp 4.x。 我该怎么办?
=============================
我做了一个参考答案的函数,但它不起作用...... 我想知道为什么。
void CropImage(Bitmap bitmap, Point[] points)
{
Rectangle rect = PaddingImage(points, bitmap);
TextureBrush textureBrush = new TextureBrush(bitmap);
Bitmap bmp1 = new Bitmap(rect.Width, rect.Height);
using (Graphics g = Graphics.FromImage(bmp1))
{
g.FillPolygon(textureBrush, points);
}
string ima_path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
bmp1.Save(ima_path + "\\Image.png", ImageFormat.Png);
}
提取图像
原创
如果使用小多边形,则根本没有输出。
您会注意到两张图片略有不同。
在我看来,中心点被切割和提取的部分是不同的。不知道我的想法对不对。
【问题讨论】:
-
我希望你的答案是here。
-
@Llama 这不是方形切割吗?确定最小矩形的函数已被使用。
-
See this comment。没有多边形位图这样的东西,所以您需要将它绘制到方形画布上,对吧?但这并不意味着剪裁形状不是多边形。
-
@Llama 很抱歉,我无法提供准确的信息。我编辑了帖子
-
我认为您需要详细说明您想要像素的确切格式。我假设您想要在
Bitmap上裁剪区域,但从您的编辑看来并非如此。当你想要一些超出正常范围的东西时,你需要详细解释你想要什么。