opencv c++ 图像梯度、边缘、锐化
创始人
2024-03-05 13:05:14
0

图像梯度的目的:

获取图像上沿着某一方向或多个方向上,像素值的突变图像。

即:

对满足x_{1},x_{2},...,x_{n}之间相互独立的函数,f\left ( x_{1},...,x_{n} \right )

f'(x_{1})+...+f'(x_{n})

1、预备知识

1.1、常见的梯度计算算子

 1.2、梯度计算方法

L2法:

 L1法:

 1.3如何获取梯度图像

分别使用x、y方向的算子来获取Gx,Gy,然后选用梯度计算方法来获取对应像素点的梯度值。

2、代码示例

2.1robot算子

void self_conv(Mat& image)
{//robot 梯度计算Mat robot_x = (Mat_(2, 2) << 1, 0, 0, -1);//自定义Mat核Mat robot_y = (Mat_(2, 2) << 0, 1, -1, 0);Mat grad_x,grad_y;filter2D(image, grad_x, CV_32F, robot_x, Point(-1, -1), 0, BORDER_DEFAULT);filter2D(image, grad_y, CV_32F, robot_y, Point(-1, -1), 0, BORDER_DEFAULT);convertScaleAbs(grad_x, grad_x);//该API将图像格式转为CV_8U格式,并将所有像素值置为正。convertScaleAbs(grad_y, grad_y);Mat result;add(grad_x, grad_y, result);namedWindow("robot img", WINDOW_FREERATIO);imshow("robot img", result);
}

2.2sobel算子

注:也可仿照robot算子示例输入3×3的卷积核,并赋予对应的sobel值进行梯度图像获取 。

opencvAPI调用示例:

void self_conv(Mat& image)
{Mat grad_x,grad_y;Sobel(image, grad_x, CV_32F, 1, 0);Sobel(image, grad_y, CV_32F, 0, 1);convertScaleAbs(grad_x, grad_x);//该API将图像格式转为CV_8U格式,并将所有像素值置为正。convertScaleAbs(grad_y, grad_y);Mat result2;//add(grad_x, grad_y, result2);addWeighted(grad_x, 0.5, grad_y, 0.5, 0, result2);namedWindow("sobel img", WINDOW_FREERATIO);imshow("sobel img", result2);
}

2.3Scharr算子

void self_conv(Mat& image)
{Mat grad_x,grad_y;Scharr(image, grad_x, CV_32F, 1, 0);Scharr(image, grad_y, CV_32F, 0, 1);convertScaleAbs(grad_x, grad_x);//该API将图像格式转为CV_8U格式,并将所有像素值置为正。convertScaleAbs(grad_y, grad_y);Mat result3;//add(grad_x, grad_y, result2);addWeighted(grad_x, 0.5, grad_y, 0.5, 0, result3);namedWindow("Scharr img", WINDOW_FREERATIO);imshow("Scharr img", result3);
}

结果:

3、拉普拉斯算子进行边缘获取、锐化

即二阶导数的图像应用。

3.1、拉普拉斯算子与锐化算子

拉普拉斯算子:

分别为: 四邻域算子、八邻域算子、变种算子。

拉普拉斯算子缺点:当图像细节较多时,难以去除这些细节的影响,需要与图像阈值化进行搭配使用。

锐化算子:原图加上拉普拉斯算子的结果,本质为图像增强。

 3.2、代码示例

拉普拉斯:

void Laplacian_demo(Mat& image)
{Mat dst;Laplacian(image, dst, -1, 3, 1.0, 0, BORDER_DEFAULT);namedWindow("Laplacian", WINDOW_FREERATIO);imshow("Laplacian", dst);
}

 锐化:

由于没有现有的API,下列代码由filter2D加上自定义Mat方法实现。

void QuickDemo::image_descent(Mat& image)
{//定义锐化算子Mat sharp = (Mat_(3, 3) << 0, -1, 0,-1, 5, -1,0, -1, 0);Mat result;filter2D(image, result, -1, sharp, Point(-1, -1), 0, BORDER_DEFAULT);convertScaleAbs(result, result);namedWindow("sharp img", WINDOW_FREERATIO);imshow("sharp img", result);
}

4、USM(unsharp mask)锐化

权重化减法锐化公式:

 sharp_img = α×blur - β×laplacian

优点:忽视细小细节着重对有用部分边缘进行锐化。

void usm_sharp(Mat& image)
{Mat blur_img, lap_img;GaussianBlur(image, blur_img, Size(3, 3), 0, 0, BORDER_DEFAULT);Laplacian(image, lap_img, -1, 1, 1.0, 0, BORDER_DEFAULT);Mat usm_img;addWeighted(blur_img, 1, lap_img, -0.7, 0, usm_img, -1);namedWindow("usm_sharp img", WINDOW_FREERATIO);imshow("usm_sharp img", usm_img);}

相关内容

热门资讯

课文《我是什么》说课稿 课文《我是什么》说课稿范文  【说教材】  《我是什么》是一篇科普短文。课文采用拟人手法,以第一人称...
小学二年级家长会班主任3分钟... 小学二年级家长会班主任3分钟发言稿  二年级的同学们要开家长会了,那么作为班主任在家长会上要说什么呢...
《牧童》说课稿 《牧童》说课稿  作为一名为他人授业解惑的教育工作者,就不得不需要编写说课稿,借助说课稿可以让教学工...
开会发言稿 开会发言稿范文(通用13篇)  发言稿观点要鲜明。对问题持什么看法,要明确表态。对尚未认识清楚的问题...
《赛龙夺锦》评课稿 《赛龙夺锦》评课稿  《赛龙夺锦》一课,意在把对我国传统节日的了解、社会文化生活与儿童的观察能力、社...
烈士纪念日国旗下讲话稿 有关烈士纪念日国旗下讲话稿范文  现如今,很多情况下我们需要用到讲话稿,讲话稿是写出来供宣讲或宣扬的...
《找规律》评课稿 《找规律》评课稿(精选16篇)  评课是指评者对照课堂教学目标,对教师和学生在课堂教学中的活动以及由...
五四青年节代表发言稿 五四青年节代表发言稿  在现在社会,发言稿使用的情况越来越多,发言稿是作为在特定的情境中供口语表达使...
语文小学三年级《陶罐和铁罐》... 语文小学三年级《陶罐和铁罐》说课稿(精选11篇)  作为一名教职工,通常需要用到说课稿来辅助教学,说...
三年级家长会语文老师发言稿 三年级家长会语文老师发言稿尊敬的各位家长:下午好!感谢你们在百忙之中抽时间来参加今天的家长会和长期以...
职工代表大会发言稿 职工代表大会发言稿范文  在现在社会,发言稿应用范围愈来愈广泛,发言稿特别注重结构清楚,层次简明。还...
《6和7的认识》说课稿 《6和7的认识》优秀说课稿(精选3篇)  作为一名教学工作者,有必要进行细致的说课稿准备工作,通过说...
环保发言稿 环保发言稿15篇  在我们平凡的日常里,我们都可能会用到发言稿,发言稿是作为在特定的情境中供口语表达...
《秋天的雨》的说课稿 《秋天的雨》的说课稿  一、说教材  (一)、教材分析  《秋天的雨》是义务教育课程标准实验教科书,...
会计论文的写作程序与要求 -... 会计论文的写作程序与要求 -论文完成会计论文的准备工作后,开始动手撰写论文,会计论文写作程序一般包括...
中学生学雷锋演讲稿 2017中学生学雷锋演讲稿  2017中学生学雷锋演讲稿【1】  老师们、同学们:  大家好!今天我...
毕业典礼上的讲话稿 毕业典礼上的讲话稿(汇编15篇)  在不断进步的社会中,我们都跟讲话稿有着直接或间接的联系,讲话稿是...
《六个馒头》说课稿 《六个馒头》说课稿3篇  引导语:作为一位不辞辛劳的人民教师,就有可能用到说课稿,写说课稿能有效帮助...
劳动委员的竞选稿 劳动委员的竞选稿(精选11篇)  在现在的社会生活中,我们越来越需要竞选稿,借助竞选稿可以让他人了解...
关于梦想的朗诵稿 关于梦想的朗诵稿(精选21篇)  在日常生活中,大家一定没少看到经典的朗诵稿吧,朗诵指大声朗读。就是...