Segment Graph Based Image Filtering: Fast Structure-Preserving Smoothing

Feihu Zhang, Longquan Dai, Shiming Xiang, Xiaopeng Zhang; Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2015, pp. 361-369

Abstract


In this paper, we design a new edge-aware structure, named segment graph, to represent the image and we further develop a novel double weighted average image filter (SGF) based on the segment graph. In our SGF, we use the tree distance on the segment graph to define the internal weight function of the filtering kernel, which enables the filter to smooth out high-contrast details and textures while preserving major image structures very well. While for the external weight function, we introduce a user specified smoothing window to balance the smoothing effects from each node of the segment graph. Moreover, we also set a threshold to adjust the edge-preserving performance. These advantages make the SGF more flexible in various applications and overcome the "halo" and "leak" problems appearing in most of the state-of-the-art approaches. Finally and importantly, we develop a linear algorithm for the implementation of our SGF, which has an O(N) time complexity for both gray-scale and high dimensional images, regardless of the kernel size and the intensity range. Typically, as one of the fastest edge-preserving filters, our CPU implementation achieves 0.15s per megapixel when performing filtering for 3-channel color images. The strength of the proposed filter is demonstrated by various applications, including stereo matching, optical flow, joint depth map upsampling, edge-preserving smoothing, edges detection, image abstraction and texture editing.

Related Material


[pdf]
[bibtex]
@InProceedings{Zhang_2015_ICCV,
author = {Zhang, Feihu and Dai, Longquan and Xiang, Shiming and Zhang, Xiaopeng},
title = {Segment Graph Based Image Filtering: Fast Structure-Preserving Smoothing},
booktitle = {Proceedings of the IEEE International Conference on Computer Vision (ICCV)},
month = {December},
year = {2015}
}