我正在创建一个使用Open-CV framework
检测文档边缘的应用,但效果并不理想。
我来到这个项目GPUImage
。我对此项目一无所知,任何人都可以建议我如何使用GPUImage
检测边缘。代码或教程将非常有用。
答案 0 :(得分:4)
OpenCV 是一个计算机视觉库,可以进行特征检测。如果使用得当,它可以找到边缘并告诉您的应用程序它们在图像中的位置。根据您的问题,这似乎是您所需要的。
GPUImage 是图片过滤库。它将效果应用于图像。它有几个使用边缘检测的滤镜,但它不会告诉你这些边缘在哪里。它将滤镜应用于图像,即它。
你应该坚持使用OpenCV。如果您在获得所需的特征检测结果时遇到问题,那么这将是一个不同的问题。
答案 1 :(得分:3)
我很确定你可以通过GPUImage实现这一目标。例如,看一下FilterShowcase" Harris Corner Detection":
在基础class中,您可以从中获取此代码,您可以拉出坐标:
NSString *const kGPUImageHarrisCornerDetectionFragmentShaderString = SHADER_STRING
(
varying highp vec2 textureCoordinate;
uniform sampler2D inputImageTexture;
uniform lowp float sensitivity;
const mediump float harrisConstant = 0.04;
void main()
{
mediump vec3 derivativeElements = texture2D(inputImageTexture, textureCoordinate).rgb;
mediump float derivativeSum = derivativeElements.x + derivativeElements.y;
mediump float zElement = (derivativeElements.z * 2.0) - 1.0;
// R = Ix^2 * Iy^2 - Ixy * Ixy - k * (Ix^2 + Iy^2)^2
mediump float cornerness = derivativeElements.x * derivativeElements.y - (zElement * zElement) - harrisConstant * derivativeSum * derivativeSum;
gl_FragColor = vec4(vec3(cornerness * sensitivity), 1.0);
}
);
如果不是这个,那么你可以尝试一些过滤器。