OpenCV C++ 简单小技巧 - 梯度 (8

Sobel算子,Scharr算子

结合了高斯模糊和微分,很好抗噪能力,kernel size为-1时 Scharr速度更快

Laplacian算子

拉普拉斯算子,对Sobel的二阶导数

Laplacian(frame, f1, CV_8UC1,1);
Laplacian(frame, f2, CV_8UC1,5);
Sobel(frame, f3, CV_8UC1, 1, 0,5);
Sobel(frame, f4, CV_8UC1, 0, 1,5);
Sobel(frame, f5, CV_8UC1, 1, 1,5);
image.png
image.png

单向性修正

使用 CV_64F 纠正负反差 (8u没有负值,无法将高亮到低亮标记出来

64f并不能直接输出图像,必须转换回8u格式

f1 = cv::abs(f1);
normalize(f1, f1, 0x00, 0xFF, cv::NORM_MINMAX, CV_8U);
image.png

你发现了吗? 算子实现的效果,其实就是颜色变化的导数/微分,也就是颜色的变化量,颜色变化的越剧烈,则导数图像越明显

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容