繁体   English   中英

在Emgu.CV中裁剪图像

[英]Crop Image in Emgu.CV

我有图像的投资回报率,我需要创建新图像作为图像的一部分。 我怎样才能做到这一点? (我想将图像组成一个数组,而不是矩形。)

Image<Bgr, byte> img = frame.Copy();
pieces = new List<System.Drawing.Rectangle>();

int input_cell_width = img.Width / Cols;
int input_cell_height = img.Height / Rows;

System.Drawing.Rectangle old_roi = img.ROI;

for (int row = 0; row < Rows; ++row)
{
    for (int col = 0; col < Cols; ++col)
    {
        // Get template
        img.ROI = gridOuput.GetCellItemRect(row, col, new System.Drawing.Point(0, 0));
        pieces.Add(img.ROI);
    } 
}

谢谢。

首先设置图像的ROI(如您已经做的那样),然后使用Image的Copy()成员方法。 只要设置了图像的ROI,Copy()将仅复制图像的该子部分。 请参见下面的示例。

var rois = new List<Rectangle>(); // List of rois
var imageparts = new List<Image<Gray,byte>>(); // List of extracted image parts

using (var image = new Image<Gray, byte>(...))
{
    foreach (var roi in rois)
    {
        image.ROI = roi;
        imageparts.Add(image.Copy());   
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM