OpenCV 模糊创建像区域一样的 lineblob
OpenCV blur creating linesblob like areas
我正在使用具有非常高内核(50 及更高)的 OpenCV
来获得非常夸张的模糊效果。
我在生成的图像上得到了这些奇怪的 line/area 之类的效果。请参考下图中的墙面区域。
这是在非常高的内核大小下模糊所固有的东西吗?
有什么技术可以消除和消除这种影响?
我正在使用 OpenFrameworks
和 ofxCV
插件。我代码的相关部分只是
blur(camScaled, 51);
如果你不熟悉,ofxCV
本质上是一个桥梁,最终映射回这个 OpenCV
调用。
CV_EXPORTS_W void blur( InputArray src, OutputArray dst,
Size ksize, Point anchor=Point(-1,-1),
int borderType=BORDER_DEFAULT );
这种效果很正常,因为模糊意味着通过内核平均像素值。
您应该尝试保留边缘的滤波器,例如双边滤波器。
如果您仍想使用 "classic" 模糊,您可以尝试使用中值模糊而不是均值模糊,这至少会给您带来更衰减的结果。
我正在使用具有非常高内核(50 及更高)的 OpenCV
来获得非常夸张的模糊效果。
我在生成的图像上得到了这些奇怪的 line/area 之类的效果。请参考下图中的墙面区域。
这是在非常高的内核大小下模糊所固有的东西吗? 有什么技术可以消除和消除这种影响?
我正在使用 OpenFrameworks
和 ofxCV
插件。我代码的相关部分只是
blur(camScaled, 51);
如果你不熟悉,ofxCV
本质上是一个桥梁,最终映射回这个 OpenCV
调用。
CV_EXPORTS_W void blur( InputArray src, OutputArray dst,
Size ksize, Point anchor=Point(-1,-1),
int borderType=BORDER_DEFAULT );
这种效果很正常,因为模糊意味着通过内核平均像素值。
您应该尝试保留边缘的滤波器,例如双边滤波器。 如果您仍想使用 "classic" 模糊,您可以尝试使用中值模糊而不是均值模糊,这至少会给您带来更衰减的结果。