[OpenCV] 2、边缘检测 canny
>_<" 边缘检测代码:
1 #include "opencv2/imgproc/imgproc.hpp" 2 #include "opencv2/highgui/highgui.hpp" 3 4 #include <stdio.h> 5 6 using namespace cv; 7 using namespace std; 8 9 int edgeThresh = 1; 10 Mat image, gray, edge, cedge; 11 12 // define a trackbar callback 13 void onTrackbar(int, void*) 14 { 15 blur(gray, edge, Size(3,3)); 16 17 // Run the edge detector on grayscale 18 Canny(edge, edge, edgeThresh, edgeThresh*3, 3); 19 cedge = Scalar::all(0); 20 21 image.copyTo(cedge, edge); 22 imshow("Edge map", cedge); 23 } 24 25 int main( int argc, const char** argv ) 26 { 27 28 image = imread("fruits.jpg", 1);//读取图片到mat 29 cedge.create(image.size(), image.type());//用image生成一个cedge 30 //void cvCvtColor( const CvArr* src, CvArr* dst, int code ); 31 //src 输入的 8-bit , 16-bit 或 32-bit 单倍精度浮点数影像. 32 //dst 输出的 8-bit , 16-bit 或 32-bit 单倍精度浮点数影像. 33 //code 色彩空间转换,通过定义 CV_<src_color_space>2<dst_color_space> 常数 (见下面). 34 //函数 cvCvtColor 将输入图像从一个色彩空间转换为另外一个色彩空间。 35 cvtColor(image, gray, CV_BGR2GRAY);//转换为灰度图[色彩空间转换] 36 37 // Create a window 38 namedWindow("Edge map", 1); 39 // create a toolbar 40 createTrackbar("Canny threshold", "Edge map", &edgeThresh, 100, onTrackbar); 41 // Show the image 42 onTrackbar(0, 0); 43 44 // Wait for a key stroke; the same function arranges events processing 45 waitKey(0); 46 return 0; 47 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?