0
我正試圖使用以下方法獲取二進制圖像中感興趣的邊緣的邊界。可悲的是,我的數學似乎讓我失望了,而且我只在每個維度上得到比原始圖像小2px的矩形。計算二進制圖像上的邊界矩形
有人可以告訴我我出錯的地方嗎?
注。 FastBitmap是一個允許快速訪問像素數據的類。
private Rectangle FindBox(Bitmap bitmap, byte indexToRemove)
{
int width = bitmap.Width;
int height = bitmap.Height;
int minX = width;
int minY = height;
int maxX = 0;
int maxY = 0;
using (FastBitmap fastBitmap = new FastBitmap(bitmap))
{
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
if (fastBitmap.GetPixel(x, y).B == indexToRemove)
{
if (x < minX)
{
minX = x;
}
if (x > maxX)
{
maxX = x;
}
if (y < minY)
{
minY = y;
}
if (y > maxY)
{
maxY = y;
}
}
}
}
}
// check
if ((minX == width) && (minY == height) && (maxX == 0) && (maxY == 0))
{
minX = minY = 0;
}
return new Rectangle(minX, minY, maxX - minX + 1, maxY - minY + 1);
}
我正在測試的圖像。
乾杯。我的大腦絕對處於關閉狀態。這應該是容易的一點。 – 2014-09-26 16:40:26