零碎的切割,适合标准的数字图像。帮人写的所以没太强化(分割的时候没设置正常行间距的阈值,后期也懒的判断矩形是否能合并 ),知识点也就是C#下的BitmapData的运用。思路:先做水平投影,通过像素的变换,找到上下两条线,同样方法做垂直投影,找到左右两条线,然后圈出矩形。
private void btnCutAuto_Click(object sender, EventArgs e)
{
bool flag = false;
//原图
if (this.imageBox1.Image != null)
{
srcImage = new Image<Bgr, byte>(this.imageBox1.Image.Bitmap);
}
Image<Gray, byte> grayImage = srcImage.Convert<Gray, byte>().ThresholdBinary(new Gray(196d),new Gray(255d));
//图片的水平投影,横向累计,纵向排列
int[] warray = ToProjection_W(grayImage.Bitmap);
int[] harray = ToProjection_H(grayImage.Bitmap);
List&