第3天 初识图像变换-canny边缘检测
1. 采样的定义:将一个信号(即时间或空间上的连续函数)转换成一个数值序列(即时间或空间上的离散函数)。
2. 香农采样定理:为了不失真地恢复模拟信号,采样频率应该大于模拟信号频谱中最高频率的2倍。
3. 梯度:~
3. canny边缘检测:
Canny边缘检测算法可以分为以下5个步骤:
-
应用高斯滤波来平滑图像,目的是去除噪声
-
找寻图像的强度梯度(intensity gradients)
-
应用非最大抑制(non-maximum suppression)技术来消除边误检(本来不是但检测出来是)
-
应用双阈值的方法来决定可能的(潜在的)边界
-
利用滞后技术来跟踪边界
4. 高斯卷积核是实现尺度变换的唯一线性核
5. 代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <opencv2/highgui.hpp> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { Mat img_rgb, img_gry, img_pyd, img_cny; img_rgb = imread( "/Users/xxxx/data/image_folder/玫瑰花.jpg" ); if (!img_rgb.data){ cout << "加载图片失败!" << endl; return false ; } cvtColor(img_rgb, img_gry, COLOR_BGR2GRAY); //转换为灰度空间 pyrDown(img_gry, img_pyd); //降采样 pyrDown(img_pyd, img_pyd); //再次降采样 imshow( "zzz" , img_pyd); Canny(img_pyd, img_cny, 10, 100, 3); //对两次降采样后的灰度图进行边缘检测 imshow( "ccc" , img_cny); waitKey(0); return 0; } |
6. 单位矩阵:
一种方阵,从左上角到右下角的对角线(主对角线)上的元素均为1,其余元素均为0。任何矩阵与单位矩阵相乘都等于本身。
7. 正交矩阵:
A和A的转置矩阵相乘,结果为单位矩阵,则n阶实矩阵A属于正交矩阵;
正交矩阵的逆矩阵等于它的转置矩阵;
正交矩阵用Q表示。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构