图片处理:去除图片周围的黑色边框及折角产生的边框
/************************************************************************/
/* 消除图片四周的黑色边框 */
/************************************************************************/
void RemoveBlackBorder(Mat &iplImg, Mat &dstImg)
{
int width = iplImg.size().width;
int height = iplImg.size().height;
int a = 0, b = 0, c = 0, d = 0;
int i = 0, j = 0;
if (iplImg.channels() == 1) //灰度图片
{
//消除黑色边框:上
for (j = 0; j<height; j++)
{
bool flag = false;
for (i = 0; i<width; i++)
{
if (iplImg.at<uchar>(j, i)<30)
{
;
}
else
{
flag = true;
a = j;
break;
}
}
if (flag) break;
}
//消除黑色边框:下
for (j = height - 1; j >= a; j--)
{
bool flag = false;
for (i = 0; i<width; i++)
{
if (iplImg.at<uchar>(j, i)<30)
{
;
}
else
{
flag = true;
b = j;
break;
}
}
if (flag) break;
}
//消除黑色边框:左
for (i = 0; i<width; i++)
{
bool flag = false;
for (j = 0; j<height; j++)
{
if (iplImg.at<uchar>(j, i)<30)
{
;
}
else
{
flag = true;
c = i;
break;
}
}
if (flag) break;
}
//消除黑色边框:右
for (i = width - 1; i >= c; i--)
{
bool flag = false;
for (j = 0; j<height; j++)
{
if (iplImg.at<uchar>(j, i)<