<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Neurorobot.</journal-id>
<journal-title>Frontiers in Neurorobotics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurorobot.</abbrev-journal-title>
<issn pub-type="epub">1662-5218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnbot.2022.729924</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Adaptive Bilateral Texture Filter for Image Smoothing</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Xu</surname> <given-names>Huiqin</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="author-notes" rid="fn001"><sup>&#x02020;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1358084/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Zhang</surname> <given-names>Zhongrong</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="author-notes" rid="fn001"><sup>&#x02020;</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Gao</surname> <given-names>Yin</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Liu</surname> <given-names>Haizhong</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Xie</surname> <given-names>Feng</given-names></name>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Li</surname> <given-names>Jun</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1326981/overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>School of Mathematics and Physics, Lanzhou Jiaotong University</institution>, <addr-line>Lanzhou</addr-line>, <country>China</country></aff>
<aff id="aff2"><sup>2</sup><institution>Fujian Science &#x00026; Technology Innovation Laboratory for Optoelectronic Information of China</institution>, <addr-line>Fuzhou</addr-line>, <country>China</country></aff>
<aff id="aff3"><sup>3</sup><institution>Quanzhou Institute of Equipment Manufacturing, Chinese Academy of Sciences (CAS)</institution>, <addr-line>Quanzhou</addr-line>, <country>China</country></aff>
<aff id="aff4"><sup>4</sup><institution>Institute of Automation and Communication Magdeburg</institution>, <addr-line>Magdeburg</addr-line>, <country>Germany</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Florian R&#x000F6;hrbein, Technische Universit&#x000E4;t Chemnitz, Germany</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Ye Yuan, Chongqing Institute of Green and Intelligent Technology (CAS), China; Yan Wang, Chongqing Normal University, China</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Jun Li <email>junli&#x00040;fjirsm.ac.cn</email></corresp>
<fn fn-type="equal" id="fn001"><p>&#x02020;This author contributed equally to this work and share first authorship</p></fn></author-notes>
<pub-date pub-type="epub">
<day>27</day>
<month>06</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>16</volume>
<elocation-id>729924</elocation-id>
<history>
<date date-type="received">
<day>24</day>
<month>06</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>09</day>
<month>05</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2022 Xu, Zhang, Gao, Liu, Xie and Li.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Xu, Zhang, Gao, Liu, Xie and Li</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract>
<p>The biggest challenge of texture filtering is to smooth the strong gradient textures while maintaining the weak structures, which is difficult to achieve with current methods. Based on this, we propose a scale-adaptive texture filtering algorithm in this paper. First, the four-directional detection with gradient information is proposed for structure measurement. Second, the spatial kernel scale for each pixel is obtained based on the structure information; the larger spatial kernel is for pixels in textural regions to enhance the smoothness, while the smaller spatial kernel is for pixels on structures to maintain the edges. Finally, we adopt the Fourier approximation of range kernel, which reduces computational complexity without compromising the filtering visual quality. By subjective and objective analysis, our method outperforms the previous methods in eliminating the textures while preserving main structures and also has advantages in structure similarity and visual perception quality.</p>
</abstract>
<kwd-group>
<kwd>image smoothing</kwd>
<kwd>bilateral filter</kwd>
<kwd>structure measurement</kwd>
<kwd>adaptive spatial kernel</kwd>
<kwd>Fourier approximation</kwd>
</kwd-group>
<counts>
<fig-count count="12"/>
<table-count count="4"/>
<equation-count count="23"/>
<ref-count count="47"/>
<page-count count="16"/>
<word-count count="7443"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>Introduction</title>
<p>Natural images usually have complicated textures, which makes it difficult to understand the main information of the image without texture removal. Structure-preserving texture smoothing is an important issue in computer vision and digital image processing for image cognition. It attempts to eliminate the meaningless textures while preserving dominant structure as well as possible, which has a wide range of applications, such as tone mapping (Jia and Zhang, <xref ref-type="bibr" rid="B21">2019</xref>), detail enhancement (Fei et al., <xref ref-type="bibr" rid="B13">2017</xref>), image abstraction (Winnem&#x000F6;ller et al., <xref ref-type="bibr" rid="B38">2006</xref>), and so on. For structure-preserving texture filtering, the first is to detect pixels near structure edges and then preserve structures while eliminating textures. Therefore, texture filtering plays an essential role in many image preprocessing applications.</p>
<p>The early methods utilized were in contrast to pixel intensity for texture measurement (Tomasi and Manduchi, <xref ref-type="bibr" rid="B37">1998</xref>; Farbman et al., <xref ref-type="bibr" rid="B12">2008</xref>; Xu et al., <xref ref-type="bibr" rid="B39">2011</xref>). Such methods can remove fine details but perform poorly when directly eliminating high-contrast and complicated textures in the image. Subsequently, some more comprehensive texture measurement methods have been proposed, such as local extrema (Subr et al., <xref ref-type="bibr" rid="B36">2009</xref>), region covariance (Karacan et al., <xref ref-type="bibr" rid="B22">2013</xref>), and relative total variation (Xu et al., <xref ref-type="bibr" rid="B41">2012</xref>), these methods can smooth out the textures but also cause blurring of the small structure edges. Further, many scholars have improved texture measurement methods to generate the guidance image in the joint bilateral filter. For instance, the guidance image is calculated through patch shift for each pixel (Cho et al., <xref ref-type="bibr" rid="B9">2014</xref>). Similarly, joint bilateral filtering was also employed in Jeon et al. (<xref ref-type="bibr" rid="B20">2016</xref>), Song et al. (<xref ref-type="bibr" rid="B35">2018</xref>) and Xu and Wang (<xref ref-type="bibr" rid="B43">2019</xref>), where they use an adaptive kernel scale to generate a smoothed image as guidance. These methods perform better because they proposed to use small window sizes near structures and large window sizes in the textures region.</p>
<p>On the other hand, some methods were introduced by adaptively adjusting the spatial kernel scale or range kernel scale of the bilateral filter. For instance, the size of the range kernel is changed at each pixel (Gavaskar and Chaudhury, <xref ref-type="bibr" rid="B15">2018</xref>), where the polynomials are adopted to approximate histograms for accelerations of adaptive bilateral filtering. In addition, the width of the spatial kernel is adapted by relying on local gradient information (Ghosh et al., <xref ref-type="bibr" rid="B17">2019</xref>), which can obtain structure-preserving smoothing results. This paper modifies the structure measure used in Ghosh et al. (<xref ref-type="bibr" rid="B17">2019</xref>) to implement the superior performance of texture removal.</p>
<p>In recent years, deep learning algorithms have been introduced to the area of edge-preserving texture filtering. Earlier work included deep edge-aware filtering proposed by Xu et al. (<xref ref-type="bibr" rid="B40">2015</xref>), which constructs a unified neural network architecture in the gradient domain. Chen et al. (<xref ref-type="bibr" rid="B7">2017</xref>) and Lu et al. (<xref ref-type="bibr" rid="B29">2018</xref>) both trained fully supervised Convolutional Neural Networks for texture smoothing. Since the above methods require several image pairs that are not readily available to train the model, the semi-supervised method (Gao et al., <xref ref-type="bibr" rid="B14">2020</xref>) and unsupervised method (Zhu et al., <xref ref-type="bibr" rid="B47">2017</xref>) are proposed to avoid the collection of annotated training examples.</p>
<p>In this paper, we present a scale-adaptive texture smoothing algorithm based on the traditional bilateral filtering framework, which smooths multi-scale textures by adjusting the scale of the spatial kernel at each pixel. First, we employ gradient information along with the four-directional structure detection to identify the structures from coarse textures. Second, the spatial kernel size for each pixel is estimated depending on the structure measure. Finally, we use the Fourier approximation of the Gaussian range kernel to accelerate the bilateral filtering for texture removal, where the computational complexity does not change with the spatial kernel size. The experimental results show that our method can effectively achieve the outstanding capability of structure-preserving smoothing results. The main contributions of this paper are as follows:</p>
<list list-type="bullet">
<list-item><p>We propose a four-directional structure detection based on gradient information, which uses the gradient information in the pixel neighborhood to more accurately extract structures from images containing complicated textures.</p></list-item>
<list-item><p>We propose a mapping rule to determine the spatial kernel scale of each pixel, which can adaptively adjust scale size via structure information. The pixels in the vicinity of the structure edges adopt smaller spatial kernel scales and the pixels in textural regions adopt larger spatial kernel scales.</p></list-item>
<list-item><p>The approximation algorithm of adaptive bilateral filtering is presented for texture removal. This strategy claims that the complexity of texture filtering does not lie on the scale of the spatial kernel.</p></list-item>
</list>
<p>In the following section of this paper, the related work is described in Section Related Work, our proposed method is discussed in detail in Section Our Method, experimental analysis is discussed in Section Experiments and Results, the applications of our algorithm are presented in Section Applications, and a conclusion is introduced in Section Conclusion.</p>
</sec>
<sec id="s2">
<title>Related Work</title>
<p>The research of texture filtering has received a lot of attention in the past several decades.</p>
<p>Traditional texture filtering algorithms include local weighted averaging and global optimization. Bilateral filtering (BF) (Tomasi and Manduchi, <xref ref-type="bibr" rid="B37">1998</xref>), guided filter (He et al., <xref ref-type="bibr" rid="B18">2013</xref>), and anisotropic diffusion (Perona and Malik, <xref ref-type="bibr" rid="B30">1990</xref>) are all typical local weighted averaging methods. As one of the classic non-linear filters, BF combines the spatial kernel and the range kernel for noise removal. Algorithms based on global optimization mainly include the total variation (TV) model (Rudin et al., <xref ref-type="bibr" rid="B31">1992</xref>), weighted least squares (WLS) (Farbman et al., <xref ref-type="bibr" rid="B12">2008</xref>), and <italic>L</italic><sub>0</sub> gradient minimization (Xu et al., <xref ref-type="bibr" rid="B39">2011</xref>); these methods optimize the global framework that relies on gradient information, which can overcome some limitations of local filters such as halo artifacts and gradient reversals, but these optimization-based methods need to solve a complex linear model which is time-consuming and cannot remove high-contrast noise well. Subsequently, some edge-preserving models have been proposed to optimize the global framework, for example, Huang et al. (<xref ref-type="bibr" rid="B19">2018</xref>) took advantage of global optimization together with local filtering to enhance the smoothness. To improve smoothing quality and processing speed based on WLS, Liu et al. (<xref ref-type="bibr" rid="B26">2017</xref>) proposed semi-global weighted least squares which solve a sequence of subsystems iteratively, and Liu W., et al. (<xref ref-type="bibr" rid="B27">2020</xref>) achieved high speed through Fourier transform and inverse transform. However, these traditional texture filters cannot effectively distinguish prominent structures from complex details and completely smooth out the textures in images with complex backgrounds.</p>
<p>Some new models have been proposed for extracting the salient structure from the input images, which make use of texture characteristics instead of gradient information to identify regular or random textures. For example, Subr et al. (<xref ref-type="bibr" rid="B36">2009</xref>) decomposed the structures and textures through local extrema, and they defined textures as the oscillations between local minima and maxima and calculated the average of the extremal envelopes to smooth out the textures. Karacan et al. (<xref ref-type="bibr" rid="B22">2013</xref>) proposed a patch-based region covariance that uses first-order and second-order feature statistics to extract structures from different types of textures; however, structures that have similar statistical properties to textures may be incorrectly smoothed out, which tend to overly blur the structures of the images. Lee et al. (<xref ref-type="bibr" rid="B24">2017</xref>) proposed an interval gradient operator for structure-preserving image smoothing. On the other hand, Xu et al. (<xref ref-type="bibr" rid="B41">2012</xref>) observed that the inherent variation in a window that includes structures is generally greater than that in a window containing textures, so they propose a relative total variation (RTV) to capture the structures and textures characteristics of the images. Subsequently, Zhao et al. (<xref ref-type="bibr" rid="B46">2019</xref>) proposed an activity-driven LAD-RTV for texture removal. However, these methods may incorrectly regard small structures as texture because of the overlapping area between adjacent windows. The complex textures cannot be completely smoothed out when the smoothing window size is too small, while an excessively smoothed image may be produced, and when the size is too large, it is difficult to find a suitable window size to achieve the balance between preserving main structures and removing unimportant textures.</p>
<p>To address the limitations of not smoothing out complicated textures and structure edges blurring, filtering methods based on structure-aware have been proposed to achieve high-smoothing quality. That is, the smoothing scale for a pixel is adaptively varied from pixel to pixel. These methods obtain smoothing results through joint bilateral filtering, in which the guidance image calculated by adaptive kernel scale is a particularly important process. Jeon et al. (<xref ref-type="bibr" rid="B20">2016</xref>) propose a scale-adaptive texture filtering based on patch-based statistics, and the optimal smoothing scale of each pixel is estimated according to the directional relative total variation (dRTV) measurement. Song and Xiao (<xref ref-type="bibr" rid="B33">2017</xref>) used patches of two scales to represent pixels by calculating the directional anisotropic structure measurement (DASM) on each pixel; the smaller patches are adopted for pixels at the structures and the larger patches are adopted for pixels in texture regions. Subsequently, Song et al. (<xref ref-type="bibr" rid="B34">2019</xref>) utilized directional anisotropic structure measure (DASM) to replace dRTV in Jeon et al. (<xref ref-type="bibr" rid="B20">2016</xref>), then evaluate the exact smoothing scale relying on four-direction statistics of DASM value. With regard to texture measurement windows, Xu and Wang (<xref ref-type="bibr" rid="B42">2018</xref>) adopted long and narrow small windows for texture measurement because the structure edges are not always parallel to the axes. Furthermore, Liu Y., et al. (<xref ref-type="bibr" rid="B28">2020</xref>) proposed texture filtering based on the local histogram operator, which uses the difference in color distribution to distinguish structures from textures, and then they determined the width of the range kernel. The above methods perform well in preserving structure while smoothing out textures. However, the multiple iterations of joint bilateral filtering may cause blurred structure and color cast.</p>
<p>Recently, deep learning has made significant progress in the field of image texture smoothing (Chen et al., <xref ref-type="bibr" rid="B7">2017</xref>; Kim et al., <xref ref-type="bibr" rid="B23">2018</xref>; Gao et al., <xref ref-type="bibr" rid="B14">2020</xref>). Kim et al. (<xref ref-type="bibr" rid="B23">2018</xref>) designed a new framework for structure-texture decomposition, and they replaced the total variation prior with a network and plug deep variational priors into an iterative smoothing process. Gao et al. (<xref ref-type="bibr" rid="B14">2020</xref>) presented a semi-supervised algorithm relying on Generative Adversarial Networks (GANs) for structure-preserving smoothing, which designs different loss functions for both labeled and unlabeled datasets. However, in neural network training, their target outputs are usually generated by the existing smoothing methods.</p>
</sec>
<sec id="s3">
<title>Our Method</title>
<p>Classic bilateral filtering makes use of spatial kernel together with range kernel, which not only notices the distance between pixels but also pays attention to the similarity of the intensity of pixels. Based on this, we propose a scale adaptive bilateral filtering that allows the scale of the spatial kernel to adjust at each pixel. <xref ref-type="fig" rid="F1">Figure 1</xref> shows the entire process of texture filtering of our method.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>The process of texture filtering for the input image. <bold>(A)</bold> Input image; <bold>(B)</bold> Gradient map; <bold>(C)</bold> Structure map; <bold>(D)</bold> Scale map; <bold>(E)</bold> Smoothing result. Reproduced with permission from Hyunjoon Lee, Junho Jeon, Junho Kim and Seungyong Lee, available at <ext-link ext-link-type="uri" xlink:href="https://sci-hub.wf/10.1111/cgf.12875">https://sci-hub.wf/10.1111/cgf.12875</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0001.tif"/>
</fig>
<sec>
<title>Structure-Preserving Bilateral Filtering</title>
<p>Considering the general form of bilateral filtering Tomasi and Manduchi, <xref ref-type="bibr" rid="B37">1998</xref>, for the input image <italic>f</italic>, the output result is obtained by scale adaptive bilateral filtering, written as:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>u</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mstyle><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>-</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mstyle><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>-</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>u</italic> (<italic>p</italic>) is the output value at the pixel <italic>p</italic>, and <italic>w</italic> (<italic>l</italic>) and &#x003C6; (<italic>t</italic>) represent the spatial kernel and the range kernel, respectively. We use a box function for the spatial kernel in this paper, that is, the window &#x003A9;<sub><italic>p</italic></sub> of the spatial kernel centered at the pixel <italic>p</italic>. We assume that <italic>W</italic><sub><italic>p</italic></sub> represents the scale of the spatial kernel at the pixel <italic>p</italic>, then &#x003A9;<sub><italic>p</italic></sub> can be expressed as <inline-formula><mml:math id="M2"><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and <italic>q</italic> is the pixel that belongs to &#x003A9;<sub><italic>p</italic></sub>. The Gaussian range kernel &#x003C6; (<italic>t</italic>) in Tomasi and Manduchi (<xref ref-type="bibr" rid="B37">1998</xref>) is defined as:</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M3"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>t</italic> is the intensity difference between the pixels <italic>p</italic> and <italic>q</italic>. The parameter &#x003C3;<sub><italic>r</italic></sub> is the standard deviation of the Gaussian kernel, which determines the width of the range kernel, that is, the smoothing parameter, and &#x003C3;<sub><italic>r</italic></sub> is fixed at each pixel. A small &#x003C3;<sub><italic>r</italic></sub> gives rise to superior structure-preservation and inferior texture smoothing, and on the contrary, a large &#x003C3;<sub><italic>r</italic></sub> gives rise to better texture smoothing but the undesired blurring of the structure edges. Hence, it is significant to find an appropriate parameter &#x003C3;<sub><italic>r</italic></sub> for achieving better structure-preserving texture filtering results.</p>
</sec>
<sec>
<title>Structure Measurement</title>
<p>In our proposal, we apply the large spatial kernel sizes in the homogeneous regions for texture elimination and the small sizes near structures for edge-preserving. And the kernel size at each pixel is adaptively optimized by structure measurement. So we calculate the structure information as follows.</p>
<p>First, we blur the input image <italic>f</italic> using a Gaussian filter to get image <italic>f</italic><sub>&#x003C3;</sub>. The gradient of the image <italic>f</italic><sub>&#x003C3;</sub> is calculated by:</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M4"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x02202;</mml:mi></mml:mrow><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:msqrt><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>G</italic><sub><italic>p</italic></sub> is the gradient value at the pixel <italic>p</italic>, and &#x02202;<sub><italic>x</italic></sub><italic>f</italic><sub>&#x003C3;</sub> and &#x02202;<sub><italic>y</italic></sub><italic>f</italic><sub>&#x003C3;</sub> are the partial derivatives of <italic>f</italic><sub>&#x003C3;</sub> in <italic>x</italic> and <italic>y</italic> directions.</p>
<p>The gradient map <italic>G</italic> is calculated by Equation (3), as shown in <xref ref-type="fig" rid="F1">Figure 1B</xref>. It is clear that the textures with strong gradients are also preserved when only gradient information is considered, that is, the structures and textures with similar gradients cannot be completely distinguished. Therefore, in our proposal, we further conduct four-directional structure detection relying on gradient information. For each pixel, the detection neighborhood is a (2<italic>m</italic> &#x0002B; 1) &#x000D7; (2<italic>m</italic> &#x0002B; 1) neighborhood centered at it. To determine a more accurate structural inspection value for each pixel, we detect the (<italic>m</italic> &#x0002B; 1) &#x000D7; (<italic>m</italic> &#x0002B; 1) sub-neighborhoods located in four directions. <xref ref-type="fig" rid="F2">Figure 2</xref> shows the sub-neighborhoods in four directions for structure detection. To be more specific, taking into account the distance from the pixel to the exampled pixel, we computer the weighted average of the gradient values in each sub-neighborhood to obtain <inline-formula><mml:math id="M5"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula>, <italic>j</italic> &#x0003D; {<italic>NW, NE, SW, SE</italic>}, which is used to evaluate the appearance of structure edges.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Sub-neighborhoods of four direction for structure detection.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0002.tif"/>
</fig>
<p>In the four detecting neighborhoods of each pixel, a strong structure edge corresponds to a large <italic>G</italic><sub><italic>p</italic></sub> value while a weak structure edge corresponds to a small <italic>G</italic><sub><italic>p</italic></sub> value. For this reason, we adopt the Gaussian function as the weight to calculate the <inline-formula><mml:math id="M6"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> in the four directions, and the maximum value of <inline-formula><mml:math id="M7"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> is selected as the result of structure measurement for each pixel.</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M8"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>&#x003F5;</mml:mi><mml:msubsup><mml:mrow><mml:mtext>&#x003A8;</mml:mtext></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:mrow></mml:msub></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>b</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mi>p</mml:mi><mml:mo>-</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x02016;</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mi>W</mml:mi><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>W</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo>{</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M9"><mml:msubsup><mml:mrow><mml:mtext>&#x003A8;</mml:mtext></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> represents <italic>jth</italic> sub-neighborhood, <italic>b</italic> is the pixel that belongs to <inline-formula><mml:math id="M10"><mml:msubsup><mml:mrow><mml:mtext>&#x003A8;</mml:mtext></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula>, <italic>g</italic><sub><italic>m</italic></sub> (<italic>p, b</italic>) is the Gaussian function of the distance between the pixel <italic>p</italic> and <italic>b</italic>, and max {&#x02022;} represents the maximum value of the elements in the bracket. <inline-formula><mml:math id="M11"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> is the comprehensive manifestation of the structure edges in the <italic>jth</italic> sub-neighborhood for the pixel <italic>p</italic>, whose maximum value <italic>S</italic><sub><italic>p</italic></sub> denotes more likelihood of the edges occurring. Therefore, the larger value of <italic>S</italic><sub><italic>p</italic></sub> implies less smoothing and the smaller value of <italic>S</italic><sub><italic>p</italic></sub> implies more smoothing around the pixel <italic>p</italic>.</p>
</sec>
<sec>
<title>Adaptive Spatial Kernel Scale Estimation</title>
<p>From the analysis of structure measurement, a large value of <italic>S</italic><sub><italic>p</italic></sub> suggests that the pixel is in the vicinity of the structure edges, where the scale of the spatial kernel should be adjusted as small as possible. Conversely, the spatial kernel scale should be adjusted as large as possible in textural regions. To estimate the scale <italic>W</italic><sub><italic>p</italic></sub> in terms of <italic>S</italic><sub><italic>p</italic></sub>, we establish an inverse mapping function from <italic>S</italic><sub><italic>p</italic></sub> to <italic>W</italic><sub><italic>p</italic></sub>, so that the function satisfies the above conditions. The mapping can be expressed as:</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M12"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo class="qopname">max</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M13"><mml:msubsup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is the square of <italic>S</italic><sub><italic>p</italic></sub>. &#x003BB; is the denominator of the base of an exponential function, whose value must be greater than 1 to ensure <inline-formula><mml:math id="M14"><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:msup></mml:math></inline-formula> ranges in [0, 1]. &#x003B7; is the upper limit of the scale of filtering windows, so <inline-formula><mml:math id="M15"><mml:msup><mml:mrow><mml:mi>&#x003B7;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:msup></mml:math></inline-formula> denotes the estimated value of the spatial kernel scale. The introduction of &#x003B4; is to keep the size of windows from approaching 0 so that it prevents the filtering result from over-sharpening or aliasing (&#x003B4; &#x0003D; 1 by default). Therefore, <italic>W</italic><sub><italic>p</italic></sub> ranges in [ &#x003B4;, &#x003B7; ].</p>
</sec>
<sec>
<title>Fourier Approximation</title>
<p>The brute force computation of Equation (1) requires <inline-formula><mml:math id="M16"><mml:mi>O</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> operations for each pixel, which is time-consuming in practical applications, especially in textural regions, where the scale <italic>W</italic><sub><italic>p</italic></sub> is usually large. For the computational limitation of traditional bilateral filtering, various acceleration algorithms have been proposed to approximate the bilateral filter (Chaudhury, <xref ref-type="bibr" rid="B4">2011</xref>, <xref ref-type="bibr" rid="B5">2015</xref>; Chaudhury et al., <xref ref-type="bibr" rid="B6">2011</xref>), whose computational complexity is decreased to <italic>O</italic>(1), that is, the complexity no longer depends on the scale <italic>W</italic><sub><italic>p</italic></sub>. However, some of these algorithms cannot guarantee that the error of the approximate value of the discrete points is within the tolerance range, and the poor approximated estimation may result in color distortion in the filtering image.</p>
<p>In this paper, we adopt the Fourier expansion of the range kernel in Ghosh and Chaudhury (<xref ref-type="bibr" rid="B16">2016</xref>) to approximate the scale adaptive bilateral filter. Specifically, Equation (2) can be approximated in another manner:</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M17"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mi>n</mml:mi><mml:mi>v</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C4;<sup>2</sup> &#x0003D; &#x02212;1, <italic>v</italic> &#x0003D; &#x003C0;/<italic>T</italic>, <inline-formula><mml:math id="M18"><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is an approximate estimate of &#x003C6; (<italic>t</italic>), <italic>N</italic> denotes the order of Fourier expansion, <italic>c</italic><sub><italic>n</italic></sub> is the corresponding coefficient, <italic>t</italic> is the pixel intensity differences in &#x003A9;<sub><italic>p</italic></sub>, and the range of <italic>t</italic> is {&#x02212;<italic>T</italic>, &#x022EF;&#x02009;, 0, &#x022EF;<italic>T</italic>}, where <italic>T</italic> can be calculated by:</p>
<disp-formula id="E7"><label>(7)</label><mml:math id="M19"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>&#x003F5;</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mi>&#x003F5;</mml:mi><mml:mo>&#x003A9;</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mo>|</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For all <italic>t</italic> &#x02208; [&#x02212;<italic>T, T</italic>], the following constraint must be satisfied:</p>
<disp-formula id="E8"><label>(8)</label><mml:math id="M20"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mo>|</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mo>&#x02264;</mml:mo><mml:mi>&#x003B5;</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B5; is the tolerance of the approximation for the Gaussian range kernel (&#x003B5; &#x0003D; 0.01 by default).</p>
<p>For the given range kernel &#x003C6; (<italic>t</italic>) and tolerance &#x003B5;, the specific solution of the approximation order <italic>N</italic>, and the corresponding coefficients <italic>c</italic><sub><italic>n</italic></sub> is provided in Ghosh and Chaudhury (<xref ref-type="bibr" rid="B16">2016</xref>). By using Equation (6) to approximate Equation (2), we can reformulate Equation (1) as:</p>
<disp-formula id="E9"><label>(9)</label><mml:math id="M21"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x000FB;</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>E</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>H</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x000FB; (<italic>p</italic>) is an approximation of <italic>u</italic> (<italic>p</italic>), <italic>E</italic> (<italic>p</italic>) and <italic>H</italic> (<italic>p</italic>) represent the approximate value of numerator and denominator of Equation (1), respectively, which can be expressed as:</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M22"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>E</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mstyle><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>-</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E11"><label>(11)</label><mml:math id="M23"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>H</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mstyle><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>-</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We can further express Equations (10) and (11) as:</p>
<disp-formula id="E12"><label>(12)</label><mml:math id="M24"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>E</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x003C4;</mml:mi><mml:mi>n</mml:mi><mml:mi>v</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E13"><label>(13)</label><mml:math id="M25"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>H</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x003C4;</mml:mi><mml:mi>n</mml:mi><mml:mi>v</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>e</italic><sub><italic>n</italic></sub> (<italic>p</italic>) and <italic>h</italic><sub><italic>n</italic></sub> (<italic>p</italic>) are expressed as follows:</p>
<disp-formula id="E14"><label>(14)</label><mml:math id="M26"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mstyle><mml:mi>w</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>-</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mi>n</mml:mi><mml:mi>v</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E15"><label>(15)</label><mml:math id="M27"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mstyle><mml:mi>w</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>-</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mi>n</mml:mi><mml:mi>v</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Since a box function is employed for the spatial kernel, in conclusion, the adaptive bilateral filtering can be decomposed into a series of box filtering. Therefore, Equations (14) and (15) can be simplified as follows:</p>
<disp-formula id="E16"><label>(16)</label><mml:math id="M28"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mstyle><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mi>n</mml:mi><mml:mi>v</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E17"><label>(17)</label><mml:math id="M29"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003A9;</mml:mo></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mstyle><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mi>n</mml:mi><mml:mi>v</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>It can be added point-by-point in the neighborhood of the pixel <italic>p</italic> to obtain <italic>e</italic><sub><italic>n</italic></sub> (<italic>p</italic>) and <italic>h</italic><sub><italic>n</italic></sub> (<italic>p</italic>), whose computation is expensive. Hence, in our proposal, we compute Equations (16) and (17) by the recursive algorithm in Crow (<xref ref-type="bibr" rid="B10">1984</xref>). We assume that the integrated element of pixel <italic>p</italic> in <italic>e</italic><sub><italic>n</italic></sub> (<italic>p</italic>) is <italic>r</italic> (<italic>q</italic>):</p>
<disp-formula id="E18"><label>(18)</label><mml:math id="M30"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>r</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mi>n</mml:mi><mml:mi>v</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>First, we compute the integral image <italic>R</italic> (<italic>p</italic>) at the pixel <italic>p</italic>:</p>
<disp-formula id="E19"><label>(19)</label><mml:math id="M31"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mi>r</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where (<italic>x, y</italic>) is the coordinate of pixel <italic>p</italic> and (<italic>k</italic><sub>1</sub>, <italic>k</italic><sub>2</sub>) is the coordinate of the pixel in the integral region.</p>
<p>By using recursive theory, the integral image <italic>R</italic> (<italic>x</italic> &#x0002B; 1, <italic>y</italic> &#x0002B; 1) at the pixel (<italic>x</italic> &#x0002B; 1, <italic>y</italic> &#x0002B; 1) can be expressed as:</p>
<disp-formula id="E20"><label>(20)</label><mml:math id="M32"><mml:mtable columnalign="center"><mml:mtr><mml:mtd><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>r</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0002B;</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For any scale <italic>W</italic><sub><italic>p</italic></sub>, <italic>e</italic><sub><italic>n</italic></sub> (<italic>p</italic>) can be computed as follows:</p>
<disp-formula id="E21"><label>(21)</label><mml:math id="M33"><mml:mtable columnalign="center"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>R</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Similarly, <italic>h</italic><sub><italic>n</italic></sub> (<italic>p</italic>) can be obtained.</p>
<p>In conclusion, we can calculate the Equations (10) and (11) according to <italic>e</italic><sub><italic>n</italic></sub> (<italic>p</italic>) and <italic>h</italic><sub><italic>n</italic></sub> (<italic>p</italic>), and instead of directly computing scale adaptive bilateral filtering, we replace each convolution with pointwise operation through Fourier expansion of the range kernel, as shown in Equations (12) and (13). Furthermore, we can compute <italic>e</italic><sub><italic>n</italic></sub> (<italic>p</italic>) and <italic>h</italic><sub><italic>n</italic></sub> (<italic>p</italic>) at <italic>O</italic>(1) complexity with a recursive algorithm, that is, <italic>e</italic><sub><italic>n</italic></sub> (<italic>p</italic>) and <italic>h</italic><sub><italic>n</italic></sub> (<italic>p</italic>) require a fixed number of operations for any scale <italic>W</italic><sub><italic>p</italic></sub>.</p>
<p>To be specific, since Equation (21) requires three additions, this means that it takes three additions to compute both Equations (16) and (17). In summary, we can compute Equations (16) and (17) using addition operations, then we can compute Equations (12) and (13) in terms of Equations (16) and (17) by pointwise operations. It is quite clear that the computation of Equation (9) is based on Equations (12) and (13), which proves that the scale adaptive bilateral filter can be computed at <italic>O</italic>(1) complexity.</p>
<p>We compute the approximation of the output value in this paper, particularly, we consider the error to be:</p>
<disp-formula id="E22"><label>(22)</label><mml:math id="M34"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mi>u</mml:mi><mml:mo>-</mml:mo><mml:mi>&#x000FB;</mml:mi><mml:mo>&#x02016;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x0221E;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo class="qopname">max</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>u</mml:mi><mml:mrow><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x000FB;</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mo>:</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>p</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>f</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>which provides the largest difference between the exact and approximate scale-adaptive bilateral filtering pixelwise.</p>
<table-wrap position="float" id="T3">
<caption><p>Necessary symbols.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="left"><bold>Significance</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><italic>f</italic></td>
<td valign="top" align="left">The input image</td>
</tr>
<tr>
<td valign="top" align="left"><italic>u</italic> (<italic>p</italic>)</td>
<td valign="top" align="left">The output value at the pixel <italic>p</italic></td>
</tr>
<tr>
<td valign="top" align="left"><italic>w</italic> (<italic>l</italic>)</td>
<td valign="top" align="left">The spatial kernel of bilateral filtering</td>
</tr>
<tr>
<td valign="top" align="left">&#x003C6; (<italic>t</italic>)</td>
<td valign="top" align="left">The range kernel of bilateral filtering</td>
</tr>
<tr>
<td valign="top" align="left"><italic>W</italic><sub><italic>p</italic></sub></td>
<td valign="top" align="left">The scale of the spatial kernel at the pixel <italic>p</italic></td>
</tr>
<tr>
<td valign="top" align="left"><italic>f</italic><sub>&#x003C3;</sub></td>
<td valign="top" align="left">The image blurred by input image <italic>f</italic></td>
</tr>
<tr>
<td valign="top" align="left"><italic>G</italic><sub><italic>p</italic></sub></td>
<td valign="top" align="left">The gradient of the image <italic>f</italic><sub>&#x003C3;</sub></td>
</tr>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M35"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">The comprehensive manifestation of the structure edges</td>
</tr>
<tr>
<td valign="top" align="left"><italic>S</italic><sub><italic>p</italic></sub></td>
<td valign="top" align="left">The likelihood of the edges occurring</td>
</tr>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M36"><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="left">The approximation of &#x003C6; (<italic>t</italic>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000FB; (<italic>p</italic>)</td>
<td valign="top" align="left">The approximation of <italic>u</italic> (<italic>p</italic>)</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>According to the Equation (6), the error comes from the approximation of the range kernel, meanwhile, for all <italic>t</italic> &#x02208; [&#x02212;<italic>T, T</italic>], <inline-formula><mml:math id="M37"><mml:mo>|</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C6;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mo>&#x02264;</mml:mo><mml:mi>&#x003B5;</mml:mi></mml:math></inline-formula>. From the conclusion of Ghosh and Chaudhury (<xref ref-type="bibr" rid="B16">2016</xref>), we can ensure that Equation (22) is within some tolerance:</p>
<disp-formula id="E23"><label>(23)</label><mml:math id="M38"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mo>&#x02016;</mml:mo><mml:mi>u</mml:mi><mml:mo>-</mml:mo><mml:mi>&#x000FB;</mml:mi><mml:mo>&#x02016;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x0221E;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:mi>T</mml:mi><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x003F5;</mml:mi></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Since there are complex and irregular textures in many natural images, generally, single iterative filtering cannot completely smooth out the textures. Considering this limitation, we adopt the multiple iteration operation of adaptive bilateral filtering in this paper. <xref ref-type="table" rid="T4">Algorithm 1</xref> summarizes the overall process of our method.</p>
<table-wrap position="float" id="T4">
<label>Algorithm 1</label>
<caption><p>Structure-preserving bilateral texture filtering.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="left"><bold>Input:</bold> image <italic>f</italic></td>
</tr>
<tr>
<td valign="top" align="left"><bold>Output:</bold> filtered result <italic>u</italic></td>
</tr>
<tr>
<td valign="top" align="left"><bold>for all</bold> <italic>i</italic> &#x0003D; 1 : <italic>I</italic> <bold>do</bold></td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>S</italic> &#x02190; structure measurement<break/> &#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>W</italic> &#x02190; spatial kernel scale<break/> &#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>N</italic> &#x02190; order of Fourier expansion<break/> &#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>E</italic> (<italic>p</italic>) &#x02190; the numerator of the adaptive bilateral filter<break/> &#x000A0;&#x000A0;&#x000A0;&#x000A0;<italic>H</italic> (<italic>p</italic>) &#x02190; the denominator of the adaptive bilateral filter<break/> &#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000FB; (<italic>p</italic>) &#x02190; scale adaptive bilateral filtering of <italic>f</italic></td>
</tr>
<tr>
<td valign="top" align="left"><bold>end for</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="s4">
<title>Experiments and Results</title>
<sec>
<title>Parameters Setting</title>
<p>Our method is implemented using MATLAB. In our algorithm, the relevant parameters are &#x003C3;<sub><italic>r</italic></sub>, <italic>m</italic>, &#x003BB;, &#x003B7;, and <italic>I</italic>. &#x003C3;<sub><italic>r</italic></sub> determines the scale of the Gaussian range kernel, as we adopt the suggested setting by Ghosh et al. (<xref ref-type="bibr" rid="B17">2019</xref>): &#x003C3;<sub><italic>r</italic></sub> ranges in [20, 40]. While evaluating structure measurement, generally, we manually set the radius of detection neighborhood <italic>m</italic> &#x0003D; 4 to practice a majority of cases. &#x003BB; is used to normalize the values of structure measurement to the interval [0, 1], so we fix &#x003BB; &#x0003D; 10 throughout.</p>
<p>The relatively important parameters are the upper limit of the spatial kernel scale &#x003B7; and iteration number <italic>I</italic>. The value of &#x003B7; depends on the roughness of the textures and the sharpness of the structures and by the parameter recommendation of Ghosh et al. (<xref ref-type="bibr" rid="B17">2019</xref>), we set &#x003B7; ranges in [8, 16]. In most situations, setting <italic>I</italic> &#x0003D; 2 can achieve the desired filtering visual effect. <xref ref-type="fig" rid="F3">Figure 3</xref> shows the filtering results in different combinations of &#x003B7; and <italic>I</italic>.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Filtering results with various parameter combinations. <bold>(A)</bold> Input image; <bold>(B)</bold> &#x003B7;&#x0003D;10,<italic>I</italic>&#x0003D;2; <bold>(C)</bold> &#x003B7;&#x0003D;10,<italic>I</italic>&#x0003D;3; <bold>(D)</bold> &#x003B7;&#x0003D;15,<italic>I</italic>&#x0003D;1; <bold>(E)</bold> &#x003B7;&#x0003D;15,<italic>I</italic>&#x0003D;2; <bold>(F)</bold> &#x003B7;&#x0003D;15,<italic>I</italic>&#x0003D;3. Reproduced with permission from Li Xu, Qiong Yan, Yang Xia, Jiaya Jia, available at <ext-link ext-link-type="uri" xlink:href="http://www.cse.cuhk.edu.hk/%7eleojia/projects/texturesep/">http://www.cse.cuhk.edu.hk/%7eleojia/projects/texturesep/</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0003.tif"/>
</fig>
</sec>
<sec>
<title>Visual Comparison</title>
<p>For subjective evaluation, we compute our algorithm with the state-of-the-art texture smoothing techniques, including relative total variation (RTV) (Xu et al., <xref ref-type="bibr" rid="B41">2012</xref>), structure gradient and texture decorrelation regularization (SGTD) (Liu et al., <xref ref-type="bibr" rid="B25">2013</xref>), rolling guidance filter (RGF) (Zhang et al., <xref ref-type="bibr" rid="B45">2014</xref>), bilateral texture filtering (BTF) (Cho et al., <xref ref-type="bibr" rid="B9">2014</xref>), scale-aware structure-preserving texture filtering (SATF) (Jeon et al., <xref ref-type="bibr" rid="B20">2016</xref>), and relativity-of-Gaussian (ROG) (Cai et al., <xref ref-type="bibr" rid="B2">2017</xref>). Generally, we use the suggested parameters to obtain optimal filtering results for previous methods. In <xref ref-type="fig" rid="F4">Figures 4</xref>&#x02013;<bold>6</bold>, we display the visual effect comparison for three images containing various textures and structures. The reason why we choose these three images is that they contain different types of textures and different shaped structures, which can illustrate the superiority of our algorithm from many aspects.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Visual effect comparison of texture filtering results. <bold>(A)</bold> Input image; <bold>(B)</bold> RTV (&#x003BB;&#x0003D;0.015,&#x003C3;&#x0003D;6); <bold>(C)</bold> SGTD (<italic>mu</italic>&#x0003D;0.31); <bold>(D)</bold> RGF (&#x003C3;<sub><italic>s</italic></sub>&#x0003D;5,&#x003C3;<sub><italic>r</italic></sub>&#x0003D;1); <bold>(E)</bold> BTF (<italic>k</italic>&#x0003D;9); <bold>(F)</bold> SATF (<italic>sr</italic>&#x0003D;0.1,<italic>se</italic>&#x0003D;0.05); <bold>(G)</bold> ROG (&#x003C3;<sub>1</sub>&#x0003D;1,&#x003C3;<sub>2</sub>&#x0003D;3); <bold>(H)</bold> ours (&#x003C3;<sub><italic>r</italic></sub>&#x0003D;35,&#x003B7;&#x0003D;10,<italic>I</italic>&#x0003D;2). Reproduced with permission from Chengfang Song, Chunxia Xiao, Ling Lei, and Haigang Sui, available at <ext-link ext-link-type="uri" xlink:href="https://sci-hub.wf/10.1111/cgf.13005">https://sci-hub.wf/10.1111/cgf.13005</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0004.tif"/>
</fig>
<p><xref ref-type="fig" rid="F4">Figure 4</xref> shows the filtered results of different methods on the mosaic art &#x0201C;Pompeii fish mosaic,&#x0201D; where the image contains coarse textures and highlighted small-scale structure edges. It is observed that all methods can eliminate fine details in homogenous regions; however, the approaches of SGTD and ROG perform better in removing high-contrast textures effectively. Moreover, for the preservation of small structures highlighted in the image, the methods of SGTD, RGF, BTF, and ROG can hardly preserve the fine structures of fish&#x00027;s eyes which are overly smoothed since the size of the windows is oversize. In the enlarged box, we can clear that the methods of RTV, SGTD, and ROG may result in excessive sharpness near structure edges, which appears as an unwanted jaggy artifact.</p>
<p>Compared with these existing advanced methods, our algorithm works better in eliminating coarse textures while preserving main structures as much as possible in <xref ref-type="fig" rid="F4">Figure 4H</xref>. Particularly, our method can completely preserve the structure of fish&#x00027;s eyes.</p>
<p><xref ref-type="fig" rid="F5">Figure 5</xref> shows the smoothing effect on a face image. Especially, we focus on the region highlighted with the red box, whose meaningful structures and textures on the left and right sides of the nose bridge are very similar in appearance. Since the previous methods apply texture filtering with the fix-scale kernel to remove textures, the visual effect is not always well. The results of RTV, BTF, and ROG exist unwished artifacts in the bridge of the nose. On the side, the methods of RGF and SATF perform poorly when removing high-contrast textures.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Texture filtering results comparison. <bold>(A)</bold> Input image; <bold>(B)</bold> RTV (&#x003BB;&#x0003D;0.015,&#x003C3;&#x0003D;8); <bold>(C)</bold> SGTD (<italic>mu</italic>&#x0003D;0.31); <bold>(D)</bold> RGF (&#x003C3;<sub><italic>s</italic></sub>&#x0003D;5,&#x003C3;<sub><italic>r</italic></sub>&#x0003D;0.1); <bold>(E)</bold> BTF (<italic>k</italic>&#x0003D;9); <bold>(F)</bold> SATF (<italic>sr</italic>&#x0003D;0.1,<italic>se</italic>&#x0003D;0.05); <bold>(G)</bold> ROG (&#x003C3;<sub>1</sub>&#x0003D;1,&#x003C3;<sub>2</sub>&#x0003D;4); <bold>(H)</bold> ours (&#x003C3;<sub><italic>r</italic></sub>&#x0003D;35,&#x003B7;&#x0003D;10,<italic>I</italic>&#x0003D;2). Reproduced with permission from Sanjay Ghosh, Ruturaj G. Gavaskar, Debasisha Panda and Kunal N. Chaudhury, available at <ext-link ext-link-type="uri" xlink:href="https://sci-hub.wf/10.1109/TCSVT.2019.2916589">https://sci-hub.wf/10.1109/TCSVT.2019.2916589</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0005.tif"/>
</fig>
<p>Our algorithm handles the pixel around structures with a small scale and the pixel in the textural region with a large scale. In <xref ref-type="fig" rid="F5">Figure 5H</xref>, we obtain a better filtering result than the state-of-the-art methods and our method can remove coarse textures without creating artifacts.</p>
<p><xref ref-type="fig" rid="F6">Figure 6</xref> shows small structures comparison of different filtering results on the mosaic art &#x0201C;fish.&#x0201D; All the existing methods blur the fine structures and cause artifacts near edges. Relatively serious are the results of RTV, SGTD, RGF, and ROG, and the whiskers and teeth of fish even became sticky. Meanwhile, in methods of BTF and SATF, the teeth of fish are barely preserved.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Small structures comparison of different filtering results. <bold>(A)</bold> Input image; <bold>(B)</bold> RTV (&#x003BB;&#x0003D;0.015,&#x003C3;&#x0003D;6); <bold>(C)</bold> SGTD (<italic>mu</italic>&#x0003D;0.31); <bold>(D)</bold> RGF (&#x003C3;<sub><italic>s</italic></sub>&#x0003D;4,&#x003C3;<sub><italic>r</italic></sub>&#x0003D;0.05); <bold>(E)</bold> BTF (<italic>k</italic>&#x0003D;9); <bold>(F)</bold> SATF (<italic>sr</italic>&#x0003D;0.1,<italic>se</italic>&#x0003D;0.05); <bold>(G)</bold> ROG (&#x003C3;<sub>1</sub>&#x0003D;1,&#x003C3;<sub>2</sub>&#x0003D;3); <bold>(H)</bold> ours (&#x003C3;<sub><italic>r</italic></sub>&#x0003D;25,&#x003B7;&#x0003D;10,<italic>I</italic>&#x0003D;2). Reproduced with permission from Hyunjoon Lee, Junho Jeon, Junho Kim and Seungyong Lee, available at <ext-link ext-link-type="uri" xlink:href="https://sci-hub.wf/10.1111/cgf.12875">https://sci-hub.wf/10.1111/cgf.12875</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0006.tif"/>
</fig>
<p>In contrast, our method achieves the superior property of preserving multi-scale structures, as shown in <xref ref-type="fig" rid="F6">Figure 6H</xref>. The edges and details can maintain the original structure as much as possible.</p>
<p><xref ref-type="fig" rid="F7">Figure 7</xref> shows the comparison of denoising effects on a gray image. Intuitively, it can be seen that the effects of RGF, BTF, and SATF methods are not ideal when removing gray image noise, and cannot completely smooth the noise in the background. The methods of RTV and ROG cause edge sharpening in smoothing results.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Comparison of gray image denoising. <bold>(A)</bold> Input image; <bold>(B)</bold> RTV (&#x003BB;&#x0003D;0.015,&#x003C3;&#x0003D;6); <bold>(C)</bold> SGTD (<italic>mu</italic>&#x0003D;0.31); <bold>(D)</bold> RGF (&#x003C3;<sub><italic>s</italic></sub>&#x0003D;4,&#x003C3;<sub><italic>r</italic></sub>&#x0003D;0.05); <bold>(E)</bold> BTF (<italic>k</italic>&#x0003D;9); <bold>(F)</bold> SATF (<italic>sr</italic>&#x0003D;0.1,<italic>se</italic>&#x0003D;0.05); <bold>(G)</bold> ROG (&#x003C3;<sub>1</sub>&#x0003D;1,&#x003C3;<sub>2</sub>&#x0003D;3); <bold>(H)</bold> ours (&#x003C3;<sub><italic>r</italic></sub>&#x0003D;25,&#x003B7;&#x0003D;10,<italic>I</italic>&#x0003D;2). The picture can be found in the MATLAB public dataset, available at <ext-link ext-link-type="uri" xlink:href="https://matlab.mathworks.com/">https://matlab.mathworks.com/</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0007.tif"/>
</fig>
<p>In comparison, our proposed algorithm can remove the noise of gray images and retain the edge features of people in the image, as shown in <xref ref-type="fig" rid="F7">Figure 7H</xref>.</p>
</sec>
<sec>
<title>Quantitative Evaluation</title>
<p>The widely used image objective quantitative evaluation methods include Peak Signal-to-Noise Ratio (PSNR) and Structural Similarity Index (SSIM). PSNR is an image quality evaluation based on error sensitivity. SSIM comprehensively measures image similarity from the aspects of brightness, contrast, and structure. In our evaluation, we also take the Feature Similarity index (FSIM) (Zhang et al., <xref ref-type="bibr" rid="B44">2011</xref>) and Blind Image Spatial Quality Evaluator (BRISQUE) (Chen et al., <xref ref-type="bibr" rid="B8">2018</xref>) as the evaluation indexes. We selected four ground truth images in Dong et al. (<xref ref-type="bibr" rid="B11">2015</xref>), Abiko and Ikehara (<xref ref-type="bibr" rid="B1">2019</xref>), and Shen et al. (<xref ref-type="bibr" rid="B32">2015</xref>), and then added salt and pepper noise along with periodic noise to these four images as the texture images, as shown in <xref ref-type="fig" rid="F8">Figure 8</xref>, using ground truth images as the reference to calculate PSNR, SSIM, and FSIM. In contrast, the BRISQUE is obtained only by the filtered result.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Images used for quantitative evaluation. <bold>(A&#x02013;D)</bold> Ground truth images; <bold>(E&#x02013;H)</bold> Images with noise. Panel <bold>(A)</bold> is reproduced with permission from Ryo Abiko, Masaaki Ikehara, available at <ext-link ext-link-type="uri" xlink:href="https://www.jstage.jst.go.jp/article/transinf/E102.D/10/E102.D_2018EDP7437/_pdf">https://www.jstage.jst.go.jp/article/transinf/E102.D/10/E102.D_2018EDP7437/_pdf</ext-link>. Panel <bold>(B)</bold> is reproduced with permission from Xiaoyong Shen, Chao Zhou, Li Xu and Jiaya Jia, available at <ext-link ext-link-type="uri" xlink:href="http://www.cse.cuhk.edu.hk/leojia/projects/mutualstructure/">http://www.cse.cuhk.edu.hk/leojia/projects/mutualstructure/</ext-link>. Panels <bold>(C,D)</bold> are reproduced with permission from Chao Dong, Chen Change Loy, Kaiming He and Xiaoou Tang, available at <ext-link ext-link-type="uri" xlink:href="http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html">http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0008.tif"/>
</fig>
<p><xref ref-type="table" rid="T1">Table 1</xref> shows the statistics of the mean values of the objective evaluation indexes of four images in <xref ref-type="fig" rid="F8">Figure 8</xref>. First, on the metric of PSNR, our method performs best among these seven methods, which suggests that our results have less image distortion. The methods of RTV and SATF get higher PSNR results that are only inferior to ours. Concerning SSIM results, our method also achieves the highest result. In contrast, we only obtain the third-highest FSIM value, which is inferior to BTF and SATF. In general, the similarity between the results filtered by our approach and ground truth images is relatively good. Finally, we take a look at BRISQUE results, whose smaller score implies better perceptual quality. It just so happens that our method has the smallest BRISQUE value.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Comparison of the mean values of the objective evaluation indexes.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Methods</bold></th>
<th valign="top" align="center"><bold>PSNR</bold></th>
<th valign="top" align="center"><bold>SSIM</bold></th>
<th valign="top" align="center"><bold>FSIM</bold></th>
<th valign="top" align="center"><bold>BRISQUE</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">RTV</td>
<td valign="top" align="center">24.1967</td>
<td valign="top" align="center">0.8758</td>
<td valign="top" align="center">0.7975</td>
<td valign="top" align="center">48.1249</td>
</tr>
<tr>
<td valign="top" align="left">SGTD</td>
<td valign="top" align="center">21.7833</td>
<td valign="top" align="center">0.8448</td>
<td valign="top" align="center">0.7773</td>
<td valign="top" align="center">37.5636</td>
</tr>
<tr>
<td valign="top" align="left">RGF</td>
<td valign="top" align="center">22.7368</td>
<td valign="top" align="center">0.8374</td>
<td valign="top" align="center">0.7946</td>
<td valign="top" align="center">57.4815</td>
</tr>
<tr>
<td valign="top" align="left">BTF</td>
<td valign="top" align="center">23.7134</td>
<td valign="top" align="center">0.8673</td>
<td valign="top" align="center"><bold>0.8423</bold></td>
<td valign="top" align="center">43.8964</td>
</tr>
<tr>
<td valign="top" align="left">SATF</td>
<td valign="top" align="center">24.3114</td>
<td valign="top" align="center">0.8693</td>
<td valign="top" align="center">0.8274</td>
<td valign="top" align="center">55.2322</td>
</tr>
<tr>
<td valign="top" align="left">ROG</td>
<td valign="top" align="center">22.9508</td>
<td valign="top" align="center">0.8551</td>
<td valign="top" align="center">0.7689</td>
<td valign="top" align="center">49.5998</td>
</tr>
<tr>
<td valign="top" align="left">Ours</td>
<td valign="top" align="center"><bold>31.3786</bold></td>
<td valign="top" align="center"><bold>0.8799</bold></td>
<td valign="top" align="center">0.8179</td>
<td valign="top" align="center"><bold>35.3667</bold></td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>The bold values indicates the maximum value of PSNR, the maximum value of SSIM, the maximum value of FSIM, and the minimum value of BRISQUE respectively</italic>.</p>
</table-wrap-foot>
</table-wrap>
</sec>
<sec>
<title>Timing Data</title>
<p>To verify that the complexity of our algorithm does not depend on the size of the spatial kernel, we set different parameters for the upper limit of the spatial kernel scale, that is, we change the width of scale to smooth the 400 &#x000D7; 324 image and recode the timings required for a single iteration.</p>
<p><xref ref-type="table" rid="T2">Table 2</xref> shows the statistics of timings for a single iteration of the image in <xref ref-type="fig" rid="F9">Figure 9A</xref>, <xref ref-type="fig" rid="F9">Figures 9B&#x02013;D</xref> show the different filtering results for different &#x003B7;. It can be seen that the timings required for the filtering process are not much different when the values of &#x003B7; are different, which illustrates that the complexity of the adaptive bilateral filtering does not depend on the size of scales. This result verifies our algorithm that the complexity is decreased to <italic>O</italic>(1) by our approximation of bilateral filtering.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Timing statistics for a single iteration of a color image.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Step</bold></th>
<th valign="top" align="center"><bold>&#x003B7; &#x0003D; 8</bold></th>
<th valign="top" align="center"><bold>&#x003B7; &#x0003D; 12</bold></th>
<th valign="top" align="center"><bold>&#x003B7; &#x0003D; 16</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Structure map <italic>S</italic></td>
<td valign="top" align="center">0.02s</td>
<td valign="top" align="center">0.01s</td>
<td valign="top" align="center">0.02s</td>
</tr>
<tr>
<td valign="top" align="left">Scale map <italic>W</italic></td>
<td valign="top" align="center">0.01s</td>
<td valign="top" align="center">0.01s</td>
<td valign="top" align="center">0.01s</td>
</tr>
<tr>
<td valign="top" align="left">Texture Filtering</td>
<td valign="top" align="center">3.07s</td>
<td valign="top" align="center">3.06s</td>
<td valign="top" align="center">3.11s</td>
</tr>
<tr>
<td valign="top" align="left">Total</td>
<td valign="top" align="center"><bold>3.10s</bold></td>
<td valign="top" align="center"><bold>3.08s</bold></td>
<td valign="top" align="center"><bold>3.14s</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Filtered results using our method. <bold>(A)</bold> Input image; <bold>(B)</bold> (&#x003C3;<sub><italic>r</italic></sub>&#x0003D;25,&#x003B7;&#x0003D;8,<italic>I</italic>&#x0003D;2); <bold>(C)</bold> (&#x003C3;<sub><italic>r</italic></sub>&#x0003D;25,&#x003B7;&#x0003D;12,<italic>I</italic>&#x0003D;2); <bold>(D)</bold> (&#x003C3;<sub><italic>r</italic></sub>&#x0003D;25,&#x003B7;&#x0003D;16,<italic>I</italic>&#x0003D;2). Reproduced with permission from Li Xu, Qiong Yan, Yang Xia, Jiaya Jia, available at <ext-link ext-link-type="uri" xlink:href="http://www.cse.cuhk.edu.hk/%7eleojia/projects/texturesep/">http://www.cse.cuhk.edu.hk/%7eleojia/projects/texturesep/</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0009.tif"/>
</fig>
</sec>
</sec>
<sec id="s5">
<title>Applications</title>
<sec>
<title>Detail Enhancement</title>
<p>Our approach can be applied to image detail enhancement (Fei et al., <xref ref-type="bibr" rid="B13">2017</xref>). It aims to highlight image details and improve the visual effects of the images. <xref ref-type="fig" rid="F10">Figure 10</xref> displays the application of our method in detail enhancement. We first subtract the filtered image from the input image to generate the textures, which are magnified three times and superimposed on the input image, so that we can achieve the purpose of detail enhancement.</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>Detail enhancement. <bold>(A,D)</bold> Input images; <bold>(B,E)</bold> Filtered results using our method; <bold>(C,F)</bold> The detail enhancement results. Reproduced with permission from Wei Liu, Pingping Zhang, Xiaogang Chen, Chunhua Shen and Xiaolin Huang, available at <ext-link ext-link-type="uri" xlink:href="https://arxiv.53yu.com/pdf/1812.07122">https://arxiv.53yu.com/pdf/1812.07122</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0010.tif"/>
</fig>
</sec>
<sec>
<title>Edge Detection</title>
<p>The existence of high-contrast textures will keep some irrelevant information and produce false edges in edge detection. Due to the severe influence of textures, we execute our method for texture removal before edge detection. As shown in <xref ref-type="fig" rid="F11">Figure 11</xref>, compared to the edge detection of the original image, the edge map of the filtered image extracted by the canny detection (Canny, <xref ref-type="bibr" rid="B3">1986</xref>) operator is clearer.</p>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>Edge detection. <bold>(A)</bold> Input image; <bold>(B)</bold> Edge detection of input image; <bold>(C)</bold> Filtered result using our method; <bold>(D)</bold> Edge detection of filtered result. Reproduced with permission from Li Xu, Qiong Yan, Yang Xia, Jiaya Jia, available at <ext-link ext-link-type="uri" xlink:href="http://www.cse.cuhk.edu.hk/%7eleojia/projects/texturesep/">http://www.cse.cuhk.edu.hk/%7eleojia/projects/texturesep/</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0011.tif"/>
</fig>
</sec>
<sec>
<title>Image Abstraction and Pencil Sketching</title>
<p>The texture smoothing method proposed in this paper can also be applied to image abstraction and pencil sketching. Following (Winnem&#x000F6;ller et al., <xref ref-type="bibr" rid="B38">2006</xref>), our method is employed in replacing the bilateral filter to generate abstraction results. Furthermore, we obtain pencil sketching results based on image abstraction. The results are shown in <xref ref-type="fig" rid="F12">Figure 12</xref>.</p>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>Image abstraction and Pencil sketching. <bold>(A,D)</bold> Input images; <bold>(B,E)</bold> Image abstraction results; <bold>(C,F)</bold> Pencil sketching results. Panel <bold>(A)</bold> is reproduced with permission from JiaXianYao, available at <ext-link ext-link-type="uri" xlink:href="https://github.com/JiaXianYao/Bilateral-Texture-Filtering">https://github.com/JiaXianYao/Bilateral-Texture-Filtering</ext-link>. Panel <bold>(D)</bold> is reproduced with permission from By Sylvain Paris, Samuel W. Hasinoff and Jan Kautz, available at <ext-link ext-link-type="uri" xlink:href="https://cacm.acm.org/magazines/2015/3/183587-local-laplacian-filters/abstract">https://cacm.acm.org/magazines/2015/3/183587-local-laplacian-filters/abstract</ext-link>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-729924-g0012.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="conclusions" id="s6">
<title>Conclusion</title>
<p>To preserve multi-scale structures while filtering various textures, we propose an adaptive bilateral texture filter for image smoothing, whose spatial kernel scale is adjusted adaptively. To distinguish prominent structures from textures, we combine gradient information and four-direction structure inspection to generate the structure map of the image. Then, the optimal spatial kernel scale corresponding to each pixel is estimated via structure measurement, which satisfied large smoothing window sizes in texture regions and small smoothing window sizes around structures. In addition, the Fourier expansion of the range kernel is used to reduce the computational complexity. Through the subjective and objective evaluation of the experimental results, we conclude that our method performs better than existing methods in texture removal and structure preservation.</p>
</sec>
<sec sec-type="data-availability" id="s7">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material, further inquiries can be directed to the corresponding author/s.</p>
</sec>
<sec id="s8">
<title>Author Contributions</title>
<p>All authors listed have made a substantial, direct, and intellectual contribution to the work and approved it for publication.</p>
</sec>
<sec sec-type="funding-information" id="s9">
<title>Funding</title>
<p>This work was supported by the National Natural Science Foundation of China (No. 62001452), the Fujian Science and Technology Innovation Laboratory for Optoelectronic Information of China (No. 2021ZZ116), and the Science and Technology Program of Quanzhou (Nos. 2020C071 and 2020C049R).</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x00027;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Abiko</surname> <given-names>R.</given-names></name> <name><surname>Ikehara</surname> <given-names>M.</given-names></name></person-group> (<year>2019</year>). <article-title>Fast edge preserving 2D smoothing filter using indicator function</article-title>. <source>IEICE Trans. Inf. Syst.</source> <volume>102</volume>, <fpage>2025</fpage>&#x02013;<lpage>2032</lpage>. <pub-id pub-id-type="doi">10.1587/transinf.2018EDP7437</pub-id></citation>
</ref>
<ref id="B2">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Cai</surname> <given-names>B.</given-names></name> <name><surname>Xing</surname> <given-names>X.</given-names></name> <name><surname>Xu</surname> <given-names>X.</given-names></name></person-group> (<year>2017</year>). <article-title>Edge/structure preserving smoothing via relativity-of-Gaussian</article-title>, in <source>2017 IEEE International Conference on Image Processing (ICIP). IEEE</source> p. <fpage>250</fpage>&#x02013;<lpage>254</lpage>. <pub-id pub-id-type="doi">10.1109/ICIP.2017.8296281</pub-id><pub-id pub-id-type="pmid">30420636</pub-id></citation></ref>
<ref id="B3">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Canny</surname> <given-names>J.</given-names></name></person-group> (<year>1986</year>). <article-title>A computational approach to edge detection</article-title>. <source>IEEE Trans. Patt. Analy. Mach. intel.</source> <volume>8</volume>, <fpage>679</fpage>&#x02013;<lpage>698</lpage>. <pub-id pub-id-type="doi">10.1109/TPAMI.1986.4767851</pub-id></citation>
</ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chaudhury</surname> <given-names>K. N.</given-names></name></person-group> (<year>2011</year>). <article-title>Constant-time filtering using shiftable kernels</article-title>. <source>IEEE Signal Process. Lett.</source> <volume>18</volume>, <fpage>651</fpage>&#x02013;<lpage>654</lpage>. <pub-id pub-id-type="doi">10.1109/LSP.2011.2167967</pub-id></citation>
</ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chaudhury</surname> <given-names>K. N.</given-names></name></person-group> (<year>2015</year>). <article-title>Fast and accurate bilateral filtering using Gauss-polynomial decomposition</article-title>, in <source>2015 IEEE International Conference on Image Processing (ICIP)</source> (<publisher-loc>Montreal, QC</publisher-loc>: <publisher-name>IEEE</publisher-name>), p. <fpage>2005</fpage>&#x02013;<lpage>2009</lpage>. <pub-id pub-id-type="doi">10.1109/ICIP.2015.7351152</pub-id></citation>
</ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chaudhury</surname> <given-names>K. N.</given-names></name> <name><surname>Sage</surname> <given-names>D.</given-names></name> <name><surname>Unser</surname> <given-names>M.</given-names></name></person-group> (<year>2011</year>). <article-title>Fast $ O (1) $ bilateral filtering using trigonometric range kernels</article-title>. <source>IEEE Trans. Image Proces.</source> <volume>20</volume>, <fpage>3376</fpage>&#x02013;<lpage>3382</lpage>. <pub-id pub-id-type="doi">10.1109/TIP.2011.2159234</pub-id><pub-id pub-id-type="pmid">21659022</pub-id></citation></ref>
<ref id="B7">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>Q.</given-names></name> <name><surname>Xu</surname> <given-names>J.</given-names></name> <name><surname>Koltun</surname> <given-names>V.</given-names></name></person-group> (<year>2017</year>). <article-title>Fast image processing with fully-convolutional networks</article-title>, in <source>Proceedings of the IEEE International Conference on Computer Vision</source> (<publisher-loc>Venice</publisher-loc>: <publisher-name>IEEE</publisher-name>), p. <fpage>2497</fpage>&#x02013;<lpage>2506</lpage>. <pub-id pub-id-type="doi">10.1109/ICCV.2017.273</pub-id></citation>
</ref>
<ref id="B8">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>X.</given-names></name> <name><surname>Zhang</surname> <given-names>Q.</given-names></name> <name><surname>Lin</surname> <given-names>M.</given-names></name> <name><surname>Yang</surname> <given-names>G.</given-names></name> <name><surname>He</surname> <given-names>C.</given-names></name></person-group> (<year>2018</year>). <article-title>No-Reference color image quality assessment: from entropy to perceptual quality</article-title>. <source>arXiv preprint arXiv:1812.10695</source>, <fpage>1</fpage>&#x02013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.1186/s13640-019-0479-7</pub-id></citation>
</ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cho</surname> <given-names>H.</given-names></name> <name><surname>Lee</surname> <given-names>H.</given-names></name> <name><surname>Kang</surname> <given-names>H.</given-names></name> <name><surname>Lee</surname> <given-names>S.</given-names></name></person-group> (<year>2014</year>). <article-title>Bilateral texture filtering</article-title>. <source>ACM Trans. Graph.</source> <volume>33</volume>, <fpage>1</fpage>&#x02013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1145/2601097.2601188</pub-id></citation>
</ref>
<ref id="B10">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Crow</surname> <given-names>F. C.</given-names></name></person-group> (<year>1984</year>). <article-title>Summed-area tables for texture mapping</article-title>, in <source>Proceedings of the 11th Annual Conference on Computer Graphics and Interactive Techniques</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>Association for Computing Machinery</publisher-name>), p. <fpage>207</fpage>&#x02013;<lpage>212</lpage>. <pub-id pub-id-type="doi">10.1145/964965.808600</pub-id></citation>
</ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dong</surname> <given-names>C.</given-names></name> <name><surname>Loy</surname> <given-names>C. C.</given-names></name> <name><surname>He</surname> <given-names>K.</given-names></name> <name><surname>Tang</surname> <given-names>X.</given-names></name></person-group> (<year>2015</year>). <article-title>Image super-resolution using deep convolutional networks</article-title>. <source>IEEE Trans. Patt. Analy. Mach. Intel.</source> <volume>38</volume>, <fpage>295</fpage>&#x02013;<lpage>307</lpage>. <pub-id pub-id-type="doi">10.1109/TPAMI.2015.2439281</pub-id><pub-id pub-id-type="pmid">34106864</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Farbman</surname> <given-names>Z.</given-names></name> <name><surname>Fattal</surname> <given-names>R.</given-names></name> <name><surname>Lischinski</surname> <given-names>D.</given-names></name> <name><surname>Szeliski</surname> <given-names>R.</given-names></name></person-group> (<year>2008</year>). <article-title>Edge-preserving decompositions for multi-scale tone and detail manipulation</article-title>. <source>ACM Trans. Graph.</source> <volume>27</volume>, <fpage>1</fpage>&#x02013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1145/1360612.1360666</pub-id></citation>
</ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fei</surname> <given-names>K.</given-names></name> <name><surname>Zhe</surname> <given-names>W.</given-names></name> <name><surname>Chen</surname> <given-names>W.</given-names></name> <name><surname>Wu</surname> <given-names>X.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name></person-group> (<year>2017</year>). <article-title>Intelligent detail enhancement for exposure fusion</article-title>. <source>IEEE Trans. Multim.</source> <volume>20</volume>, <fpage>484</fpage>&#x02013;<lpage>95</lpage>. <pub-id pub-id-type="doi">10.1109/TMM.2017.2743988</pub-id></citation>
</ref>
<ref id="B14">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gao</surname> <given-names>X.</given-names></name> <name><surname>Wu</surname> <given-names>X.</given-names></name> <name><surname>Xu</surname> <given-names>P.</given-names></name> <name><surname>Guo</surname> <given-names>S.</given-names></name> <name><surname>Liao</surname> <given-names>M.</given-names></name> <name><surname>Wang</surname> <given-names>W.</given-names></name></person-group> (<year>2020</year>). <article-title>Semi-supervised texture filtering with shallow to deep understanding</article-title>. <source>IEEE Trans. Image Proces.</source> <volume>29</volume>, <fpage>7537</fpage>&#x02013;<lpage>7548</lpage>. <pub-id pub-id-type="doi">10.1109/TIP.2020.3004043</pub-id></citation>
</ref>
<ref id="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gavaskar</surname> <given-names>R. G.</given-names></name> <name><surname>Chaudhury</surname> <given-names>K. N.</given-names></name></person-group> (<year>2018</year>). <article-title>Fast adaptive bilateral filtering</article-title>. <source>IEEE Trans. Image Proces.</source> <volume>28</volume>, <fpage>779</fpage>&#x02013;<lpage>790</lpage>. <pub-id pub-id-type="doi">10.1109/TIP.2018.2871597</pub-id><pub-id pub-id-type="pmid">30235131</pub-id></citation></ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ghosh</surname> <given-names>S.</given-names></name> <name><surname>Chaudhury</surname> <given-names>K. N.</given-names></name></person-group> (<year>2016</year>). <article-title>On fast bilateral filtering using Fourier kernels</article-title>. <source>IEEE Signal Process. Lett.</source> <volume>23</volume>, <fpage>570</fpage>&#x02013;<lpage>573</lpage>. <pub-id pub-id-type="doi">10.1109/LSP.2016.2539982</pub-id></citation>
</ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ghosh</surname> <given-names>S.</given-names></name> <name><surname>Gavaskar</surname> <given-names>R. G.</given-names></name> <name><surname>Panda</surname> <given-names>D.</given-names></name> <name><surname>Chaudhury</surname> <given-names>K. N.</given-names></name></person-group> (<year>2019</year>). <article-title>Fast scale-adaptive bilateral texture smoothing</article-title>. <source>IEEE Trans. Circ. Syst. Video Technol.</source> <volume>30</volume>, <fpage>2015</fpage>&#x02013;<lpage>26</lpage>. <pub-id pub-id-type="doi">10.1109/TCSVT.2019.2916589</pub-id></citation>
</ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>He</surname> <given-names>K.</given-names></name> <name><surname>Sun</surname> <given-names>J.</given-names></name> <name><surname>Tang</surname> <given-names>X.</given-names></name></person-group> (<year>2013</year>). <article-title>Guided image filtering</article-title>. <source>IEEE Trans. Patt. Analy. Mach. intel.</source> <volume>35</volume>, <fpage>1397</fpage>&#x02013;<lpage>1409</lpage>. <pub-id pub-id-type="doi">10.1109/TPAMI.2012.213</pub-id><pub-id pub-id-type="pmid">23599054</pub-id></citation></ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname> <given-names>W.</given-names></name> <name><surname>Bi</surname> <given-names>W.</given-names></name> <name><surname>Gao</surname> <given-names>G.</given-names></name> <name><surname>Zhang</surname> <given-names>Y. P.</given-names></name> <name><surname>Zhu</surname> <given-names>Z.</given-names></name></person-group> (<year>2018</year>). <article-title>Image smoothing via a scale-aware filter and L 0 norm</article-title>. <source>IET Image Process.</source> <volume>12</volume>, <fpage>1521</fpage>&#x02013;<lpage>1528</lpage>. <pub-id pub-id-type="doi">10.1049/iet-ipr.2017.0719</pub-id></citation>
</ref>
<ref id="B20">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Jeon</surname> <given-names>J.</given-names></name> <name><surname>Lee</surname> <given-names>H.</given-names></name> <name><surname>Kang</surname> <given-names>H.</given-names></name> <name><surname>Lee</surname> <given-names>S.</given-names></name></person-group> (<year>2016</year>). <article-title>Scale-aware structure-preserving texture filtering</article-title>, in <source>Computer Graphics Forum</source> (<publisher-loc>Hoboken, NJ</publisher-loc>: <publisher-name>Wiley Online Library</publisher-name>), p. <fpage>77</fpage>&#x02013;<lpage>86</lpage>. <pub-id pub-id-type="doi">10.1111/cgf.13005</pub-id></citation>
</ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jia</surname> <given-names>Y.</given-names></name> <name><surname>Zhang</surname> <given-names>W.</given-names></name></person-group> (<year>2019</year>). <article-title>Efficient and adaptive tone mapping algorithm based on guided image filter</article-title>. <source>Int. J. Patt. Recogn. Artif. Intel.</source> <volume>34</volume>, <fpage>2054012</fpage>. <pub-id pub-id-type="doi">10.1142/S0218001420540129</pub-id></citation>
</ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Karacan</surname> <given-names>L.</given-names></name> <name><surname>Erdem</surname> <given-names>E.</given-names></name> <name><surname>Erdem</surname> <given-names>A.</given-names></name></person-group> (<year>2013</year>). <article-title>Structure-preserving image smoothing via region covariances</article-title>. <source>ACM Trans. Graph.</source> <volume>32</volume>, <fpage>1</fpage>&#x02013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.1145/2508363.2508403</pub-id></citation>
</ref>
<ref id="B23">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>Y.</given-names></name> <name><surname>Ham</surname> <given-names>B.</given-names></name> <name><surname>Do</surname> <given-names>M. N.</given-names></name> <name><surname>Sohn</surname> <given-names>K.</given-names></name></person-group> (<year>2018</year>). <article-title>Structure-texture image decomposition using deep variational priors</article-title>. <source>IEEE Trans. Image Proces.</source> <volume>28</volume>, <fpage>2692</fpage>&#x02013;<lpage>2704</lpage>. <pub-id pub-id-type="doi">10.1109/TIP.2018.2889531</pub-id><pub-id pub-id-type="pmid">30582541</pub-id></citation></ref>
<ref id="B24">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lee</surname> <given-names>H.</given-names></name> <name><surname>Jeon</surname> <given-names>J.</given-names></name> <name><surname>Kim</surname> <given-names>J.</given-names></name> <name><surname>Lee</surname> <given-names>S.</given-names></name></person-group> (<year>2017</year>). <article-title>Structure-texture decomposition of images with interval gradient</article-title>, in <source>Computer Graphics Forum</source> (<publisher-loc>Hoboken, NJ</publisher-loc>: <publisher-name>Wiley Online Library</publisher-name>), p. <fpage>262</fpage>&#x02013;<lpage>274</lpage>. <pub-id pub-id-type="doi">10.1111/cgf.12875</pub-id></citation>
</ref>
<ref id="B25">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>Q.</given-names></name> <name><surname>Liu</surname> <given-names>J.</given-names></name> <name><surname>Dong</surname> <given-names>P.</given-names></name> <name><surname>Liang</surname> <given-names>D.</given-names></name></person-group> (<year>2013</year>). <article-title>SGTD: Structure gradient and texture decorrelating regularization for image decomposition</article-title>, in <source>Proceedings of the IEEE International Conference on Computer Vision</source> (<publisher-loc>Sydney, NSW</publisher-loc>: <publisher-name>IEEE</publisher-name>), p. <fpage>1081</fpage>&#x02013;<lpage>1088</lpage>. <pub-id pub-id-type="doi">10.1109/ICCV.2013.138</pub-id></citation>
</ref>
<ref id="B26">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>W.</given-names></name> <name><surname>Chen</surname> <given-names>X.</given-names></name> <name><surname>Shen</surname> <given-names>C.</given-names></name> <name><surname>Liu</surname> <given-names>Z.</given-names></name> <name><surname>Yang</surname> <given-names>J.</given-names></name></person-group> (<year>2017</year>). <article-title>Semi-global weighted least squares in image filtering</article-title>, in <source>Proceedings of the IEEE International Conference on Computer Vision</source> (<publisher-loc>Cham</publisher-loc>: <publisher-name>IEEE</publisher-name>), p. <fpage>5861</fpage>&#x02013;<lpage>5869</lpage>. <pub-id pub-id-type="doi">10.1109/ICCV.2017.624</pub-id></citation>
</ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>W.</given-names></name> <name><surname>Zhang</surname> <given-names>P.</given-names></name> <name><surname>Huang</surname> <given-names>X.</given-names></name> <name><surname>Yang</surname> <given-names>J.</given-names></name> <name><surname>Shen</surname> <given-names>C.</given-names></name> <name><surname>Reid</surname> <given-names>I.</given-names></name></person-group> (<year>2020</year>). <article-title>Real-time image smoothing via iterative least squares</article-title>. <source>ACM Trans. Graph.</source> <volume>39</volume>, <fpage>1</fpage>&#x02013;<lpage>24</lpage>. <pub-id pub-id-type="doi">10.1145/3388887</pub-id></citation>
</ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Liu</surname> <given-names>G.</given-names></name> <name><surname>Liu</surname> <given-names>H.</given-names></name> <name><surname>Liu</surname> <given-names>C.</given-names></name></person-group> (<year>2020</year>). <article-title>Structure-aware texture filtering based on local histogram operator</article-title>. <source>IEEE Access.</source> <volume>8</volume>, <fpage>43838</fpage>&#x02013;<lpage>43849</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2020.2977408</pub-id></citation>
</ref>
<ref id="B29">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>K.</given-names></name> <name><surname>You</surname> <given-names>S.</given-names></name> <name><surname>Barnes</surname> <given-names>N.</given-names></name></person-group> (<year>2018</year>). <article-title>Deep texture and structure aware filtering network for image smoothing</article-title>, in <source>Proceedings of the European Conference on Computer Vision (ECCV)</source>. p. <fpage>217</fpage>&#x02013;<lpage>233</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-030-01225-0_14</pub-id></citation>
</ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Perona</surname> <given-names>P.</given-names></name> <name><surname>Malik</surname> <given-names>J.</given-names></name></person-group> (<year>1990</year>). <article-title>Scale-space and edge detection using anisotropic diffusion</article-title>. <source>IEEE Trans. Patt. Analy. Mach. Intel.</source> <volume>12</volume>, <fpage>629</fpage>&#x02013;<lpage>639</lpage>. <pub-id pub-id-type="doi">10.1109/34.56205</pub-id></citation>
</ref>
<ref id="B31">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rudin</surname> <given-names>L. I.</given-names></name> <name><surname>Osher</surname> <given-names>S.</given-names></name> <name><surname>Fatemi</surname> <given-names>E.</given-names></name></person-group> (<year>1992</year>). <article-title>Nonlinear total variation based noise removal algorithms</article-title>. <source>Hysica D.</source> <volume>60</volume>, <fpage>259</fpage>&#x02013;<lpage>268</lpage>. <pub-id pub-id-type="doi">10.1016/0167-2789(92)90242-F</pub-id></citation>
</ref>
<ref id="B32">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shen</surname> <given-names>X.</given-names></name> <name><surname>Zhou</surname> <given-names>C.</given-names></name> <name><surname>Xu</surname> <given-names>L.</given-names></name> <name><surname>Jia</surname> <given-names>J.</given-names></name></person-group> (<year>2015</year>). <article-title>Mutual-structure for joint filtering</article-title>, in <source>Proceedings of the IEEE International Conference on Computer Vision</source> (<publisher-loc>Santiago</publisher-loc>: <publisher-name>IEEE</publisher-name>), p. <fpage>3406</fpage>&#x02013;<lpage>3414</lpage>. <pub-id pub-id-type="doi">10.1109/ICCV.2015.389</pub-id></citation>
</ref>
<ref id="B33">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Song</surname> <given-names>C.</given-names></name> <name><surname>Xiao</surname> <given-names>C.</given-names></name></person-group> (<year>2017</year>). <article-title>Structure-preserving bilateral texture filtering</article-title>, in <source>2017 International Conference on Virtual Reality and Visualization (ICVRV)</source> (<publisher-loc>Zhengzhou</publisher-loc>: <publisher-name>IEEE</publisher-name>), p. <fpage>191</fpage>&#x02013;<lpage>196</lpage>. <pub-id pub-id-type="doi">10.1109/ICVRV.2017.00046</pub-id></citation>
</ref>
<ref id="B34">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Song</surname> <given-names>C.</given-names></name> <name><surname>Xiao</surname> <given-names>C.</given-names></name> <name><surname>Lei</surname> <given-names>L.</given-names></name> <name><surname>Sui</surname> <given-names>H.</given-names></name></person-group> (<year>2019</year>). <article-title>Scale-adaptive structure-preserving texture filtering</article-title>, in <source>Computer Graphics Forum</source> (<publisher-loc>Hoboken, NJ</publisher-loc>: <publisher-name>Wiley Online Library</publisher-name>), p. <fpage>149</fpage>&#x02013;<lpage>158</lpage>. <pub-id pub-id-type="doi">10.1111/cgf.13824</pub-id></citation>
</ref>
<ref id="B35">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Song</surname> <given-names>C.</given-names></name> <name><surname>Xiao</surname> <given-names>C.</given-names></name> <name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>Li</surname> <given-names>J.</given-names></name> <name><surname>Sui</surname> <given-names>H.</given-names></name></person-group> (<year>2018</year>). <article-title>Structure-preserving texture filtering for adaptive image smoothing</article-title>. <source>J. Visual Langu. Comput.</source> <volume>45</volume>, <fpage>17</fpage>&#x02013;<lpage>23</lpage>. <pub-id pub-id-type="doi">10.1016/j.jvlc.2018.02.002</pub-id></citation>
</ref>
<ref id="B36">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Subr</surname> <given-names>K.</given-names></name> <name><surname>Soler</surname> <given-names>C.</given-names></name> <name><surname>Durand</surname> <given-names>F.</given-names></name></person-group> (<year>2009</year>). <article-title>Edge-preserving multiscale image decomposition based on local extrema</article-title>. <source>ACM Trans. Graph.</source> <volume>28</volume>, <fpage>1</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1145/1618452.1618493</pub-id></citation>
</ref>
<ref id="B37">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Tomasi</surname> <given-names>C.</given-names></name> <name><surname>Manduchi</surname> <given-names>R.</given-names></name></person-group> (<year>1998</year>). <article-title>Bilateral filtering for gray and color images</article-title>, in <source>Sixth international conference on computer vision (IEEE Cat. No. 98CH36271)</source> (<publisher-loc>Bombay</publisher-loc>: <publisher-name>IEEE</publisher-name>), p. <fpage>839</fpage>&#x02013;<lpage>846</lpage>.</citation>
</ref>
<ref id="B38">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Winnem&#x000F6;ller</surname> <given-names>H.</given-names></name> <name><surname>Olsen</surname> <given-names>S. C.</given-names></name> <name><surname>Gooch</surname> <given-names>B.</given-names></name></person-group> (<year>2006</year>). <article-title>Real-time video abstraction</article-title>. <source>ACM Trans. Graph.</source> <volume>25</volume>, <fpage>1221</fpage>&#x02013;<lpage>1226</lpage>. <pub-id pub-id-type="doi">10.1145/1141911.1142018</pub-id></citation>
</ref>
<ref id="B39">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>L.</given-names></name> <name><surname>Lu</surname> <given-names>C.</given-names></name> <name><surname>Xu</surname> <given-names>Y.</given-names></name> <name><surname>Jia</surname> <given-names>J.</given-names></name></person-group> (<year>2011</year>). <article-title>Image smoothing via L 0 gradient minimization</article-title>, in <source>Proceedings of the 2011 SIGGRAPH Asia Conference.</source> p. <fpage>1</fpage>&#x02013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.1145/2070781.2024208</pub-id></citation>
</ref>
<ref id="B40">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>L.</given-names></name> <name><surname>Ren</surname> <given-names>J.</given-names></name> <name><surname>Yan</surname> <given-names>Q.</given-names></name> <name><surname>Liao</surname> <given-names>R.</given-names></name> <name><surname>Jia</surname> <given-names>J.</given-names></name></person-group> (<year>2015</year>). <article-title>Deep edge-aware filters</article-title>, in <source>International Conference on Machine Learning</source> (<publisher-loc>Lille</publisher-loc>: <publisher-name>PMLR</publisher-name>), p. <fpage>1669</fpage>&#x02013;<lpage>1678</lpage>.</citation>
</ref>
<ref id="B41">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>L.</given-names></name> <name><surname>Yan</surname> <given-names>Q.</given-names></name> <name><surname>Xia</surname> <given-names>Y.</given-names></name> <name><surname>Jia</surname> <given-names>J.</given-names></name></person-group> (<year>2012</year>). <article-title>Structure extraction from texture via relative total variation</article-title>. <source>ACM Trans. Graph.</source> <volume>31</volume>, <fpage>1</fpage>&#x02013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1145/2366145.2366158</pub-id><pub-id pub-id-type="pmid">35480971</pub-id></citation></ref>
<ref id="B42">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>P.</given-names></name> <name><surname>Wang</surname> <given-names>W.</given-names></name></person-group> (<year>2018</year>). <article-title>Improved bilateral texture filtering with edge-aware measurement</article-title>. <source>IEEE Trans. Image Proces.</source> <volume>27</volume>, <fpage>3621</fpage>&#x02013;<lpage>3630</lpage>. <pub-id pub-id-type="doi">10.1109/TIP.2018.2820427</pub-id><pub-id pub-id-type="pmid">29993979</pub-id></citation></ref>
<ref id="B43">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>P.</given-names></name> <name><surname>Wang</surname> <given-names>W.</given-names></name></person-group> (<year>2019</year>). <article-title>Structure-aware window optimization for texture filtering</article-title>. <source>IEEE Trans. Image Proces.</source> <volume>28</volume>, <fpage>4354</fpage>&#x02013;<lpage>4363</lpage>. <pub-id pub-id-type="doi">10.1109/TIP.2019.2904847</pub-id><pub-id pub-id-type="pmid">30872229</pub-id></citation></ref>
<ref id="B44">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>L.</given-names></name> <name><surname>Zhang</surname> <given-names>L.</given-names></name> <name><surname>Mou</surname> <given-names>X.</given-names></name> <name><surname>Zhang</surname> <given-names>D.</given-names></name></person-group> (<year>2011</year>). <article-title>FSIM: a feature similarity index for image quality assessment</article-title>. <source>IEEE Trans. Image Proces.</source> <volume>20</volume>, <fpage>2378</fpage>&#x02013;<lpage>2386</lpage>. <pub-id pub-id-type="doi">10.1109/TIP.2011.2109730</pub-id><pub-id pub-id-type="pmid">21292594</pub-id></citation></ref>
<ref id="B45">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>Q.</given-names></name> <name><surname>Shen</surname> <given-names>X.</given-names></name> <name><surname>Xu</surname> <given-names>L.</given-names></name> <name><surname>Jia</surname> <given-names>J.</given-names></name></person-group> (<year>2014</year>). <article-title>Rolling guidance filter</article-title>, in <source>European Conference on Computer Vision</source> (<publisher-loc>Cham</publisher-loc>: <publisher-name>Springer</publisher-name>), p. <fpage>815</fpage>&#x02013;<lpage>830</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-319-10578-9_53</pub-id></citation>
</ref>
<ref id="B46">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhao</surname> <given-names>L.</given-names></name> <name><surname>Bai</surname> <given-names>H.</given-names></name> <name><surname>Liang</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>A.</given-names></name> <name><surname>Zeng</surname> <given-names>B.</given-names></name> <name><surname>Zhao</surname> <given-names>Y.</given-names></name></person-group> (<year>2019</year>). <article-title>Local activity-driven structural-preserving filtering for noise removal and image smoothing</article-title>. <source>Signal Processing</source> <volume>157</volume>, <fpage>62</fpage>&#x02013;<lpage>72</lpage>. <pub-id pub-id-type="doi">10.1016/j.sigpro.2018.11.012</pub-id></citation>
</ref>
<ref id="B47">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhu</surname> <given-names>J. Y.</given-names></name> <name><surname>Park</surname> <given-names>T.</given-names></name> <name><surname>Isola</surname> <given-names>P.</given-names></name> <name><surname>Efros</surname> <given-names>A. A.</given-names></name></person-group> (<year>2017</year>). <article-title>Unpaired image-to-image translation using cycle-consistent adversarial networks</article-title>, in <source>Proceedings of the IEEE International Conference on Computer Vision</source> (<publisher-loc>Venice</publisher-loc>: <publisher-name>IEEE</publisher-name>), p. <fpage>2223</fpage>&#x02013;<lpage>2232</lpage>. <pub-id pub-id-type="doi">10.1109/ICCV.2017.244</pub-id></citation>
</ref>
</ref-list> 
</back>
</article>