所以我有大约 160 张大小为 2048 像素 x 512 像素的图像。图像是灰色图像,我检查白色区域,区域周围的矩形被保存在列表中。我现在想将图像拼接在一起然后绘制矩形,我更新每个矩形的 y 位置,以便可以在正确的位置绘制它们。
缝合和更新 y 位置工作正常。拼接的图像约为 2048px x 80kpx。我检测到了 11 个白色区域,但即使在调试时应该绘制所有 11 个矩形,也只绘制了 3 个矩形。
前 3 个矩形位于前 30k y 轴像素中,其他矩形从 45k 像素开始。当我更改代码以便从图 60 开始时,前 3 个矩形当然没有被绘制,但其他 8 个被绘制。
你们中有人知道如何解决这个问题吗?
public void GenerateImageMap()
{
StichtedImageTemp = new Image<Bgr, byte>(ImgWidth, ImgHeight * (GrayImageMap.Count));
for (int i = 0; i < GrayImageMap.Count; i++)
{
StichtedImageTemp.ROI = new System.Drawing.Rectangle(0, i * ImgHeight, ImgWidth, ImgHeight);
GrayImageMap[i].Convert<Bgr,byte>().CopyTo(StichtedImageTemp);
CvInvoke.cvResetImageROI(StichtedImageTemp);
}
StichtedImageTemp.Save("GrayImageMap.png");
}
public void GenerateDefectMap(List<Rectangle> RectangleItems) {
GenerateImageMap();
foreach (var item in RectangleItems)
{
StichtedImageTemp.Draw(item.GetRectangle, new Bgr(Color.Aquamarine), 3);
}
StichtedImageTemp.Save("GrayDefectMap.png");
}