[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 }
复制代码

 

posted @   beautifulzzzz  阅读(1097)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示