我对数字图像处理真的很陌生,并且解决了下面提到的问题:-我需要编写一个 C 程序来加载 ppm 图像文件并使用卷积核进行线检测。任何形式的帮助将不胜感激。
1 回答
- 首先,您需要打开文件
fopen(..)
- 其次,您需要设计一个数组或数据结构来存储图像。
- 然后你需要为每种类型的角度设计一个遮罩
- 根据蒙版的大小添加边框,将蒙版与图像进行卷积
- 保存到文件
可能会发现此链接有帮助 http://dasl.mem.drexel.edu/alumni/bGreen/www.pages.drexel.edu/_weg22/edge.html
要在您引用的链接中实现掩码,请使用此代码并将 GX 和 GY 更改为 a) 和 b)
/* 3x3 GX Sobel mask. Ref: www.cee.hw.ac.uk/hipr/html/sobel.html */
GX[0][0] = -1; GX[0][1] = 2; GX[0][2] = -1;
GX[1][0] = -1; GX[1][1] = 2; GX[1][2] = -1;
GX[2][0] = -1; GX[2][1] = 2; GX[2][2] = -1;
/* 3x3 GY Sobel mask. Ref: www.cee.hw.ac.uk/hipr/html/sobel.html */
GY[0][0] = -1; GY[0][1] = -1; GY[0][2] = -1;
GY[1][0] = 2; GY[1][1] = 2; GY[1][2] = 2;
GY[2][0] = -1; GY[2][1] = -1; GY[2][2] = -1;
c) 和 d) 相同
除了从头开始创建之外,您还可以使用开源openCV http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html 也有关于如何使用它的在线文档和教科书 http: //www.amazon.com/dp/0596516134