<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Porous Media &#8211; VISION AND IMAGE PROCESSING (VIP) RESEARCH GROUP</title>
	<atom:link href="https://vip.uwaterloo.ca/category/research-demos/porous-media/feed/" rel="self" type="application/rss+xml" />
	<link>https://vip.uwaterloo.ca</link>
	<description>The University of Waterloo&#039;s Vision and Image Processing Lab</description>
	<lastBuildDate>Fri, 12 Jan 2024 17:34:47 +0000</lastBuildDate>
	<language>en-CA</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://vip.uwaterloo.ca/wp-content/uploads/2023/04/cropped-favicon-32x32.png</url>
	<title>Porous Media &#8211; VISION AND IMAGE PROCESSING (VIP) RESEARCH GROUP</title>
	<link>https://vip.uwaterloo.ca</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Wesley Campaigne</title>
		<link>https://vip.uwaterloo.ca/w-campaigne/</link>
		
		<dc:creator><![CDATA[vipadmin]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 19:45:33 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Multiresolution Techniques]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[M.A.Sc. Grad Date: 2012]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1203</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-supervisors-1iixok wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-Z1iLyAr wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/multiresolution-techniques/>Multiresolution Techniques</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br></div>

<div class="lazyblock-publications-ZqsBfM wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(14833973300);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Simon Alexander</title>
		<link>https://vip.uwaterloo.ca/s-alexander/</link>
		
		<dc:creator><![CDATA[vipadmin]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 18:14:30 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Multiresolution Techniques]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Stochastic Models]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2005]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1155</guid>

					<description><![CDATA[Research interests include medical imaging, wavelets, and algorithms.]]></description>
										<content:encoded><![CDATA[
<p>I am currently employed as the manager of software systems development at Tornado Medical Systems, a young medical device startup in Toronto. Here I am responsible for the group doing algorithm research as well as those doing product development and scientific programming.</p>


<div class="lazyblock-supervisors-bkqUV wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-11zCg6 wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Research interests include medical imaging, wavelets, and algorithms.</div>

<div class="lazyblock-research-Z2ed71K wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/multiresolution-techniques/>Multiresolution Techniques</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><a href=https://vip.uwaterloo.ca/stochastic-models/>Stochastic Models</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br></div>

<div class="lazyblock-publications-Z19EQAx wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(23003247000);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Azadeh Mohebi</title>
		<link>https://vip.uwaterloo.ca/a-mohebi/</link>
		
		<dc:creator><![CDATA[vipadmin]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 18:05:36 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2009]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1142</guid>

					<description><![CDATA[Her current research is on statistical pattern recognition and multidimensional data modeling.]]></description>
										<content:encoded><![CDATA[
<p>As a PhD student at the Department of Systems Design Engineering, Azadeh Mohebi started her research with Professor Fieguth in the VIP lab on the statistical fusion of scientific images. Her research was specifically on fusing 2D high-resolution images and MRI low-resolution samples of porous media, using statistical models to generate artificial 2D images with higher resolution.</p>



<p>She is currently a lecturer and researcher at the Amirkabir University of Technology, Department of Computer Engineering and Information Technology, and University of Economic Science.</p>


<div class="lazyblock-supervisors-Z1NsLe4 wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-ZuS9gY wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Her current research is on statistical pattern recognition and multidimensional data modeling.</div>

<div class="lazyblock-research-Z1fn2W8 wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br></div>

<div class="lazyblock-publications-ZKKegV wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(14834280200);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ying Liu</title>
		<link>https://vip.uwaterloo.ca/y-liu/</link>
		
		<dc:creator><![CDATA[Ying Liu]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 17:54:17 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Multiresolution Techniques]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[SAR Sea Ice Image Synthesis]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Stochastic Models]]></category>
		<category><![CDATA[Video Analysis]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2011]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1136</guid>

					<description><![CDATA[My research interests lie in multidimensional signal processing, statistical modeling, and machine learning. My work is focused on the developing methodology and application algorithms for multivariate data analysis, multiresolution representation and estimation, in particular, for image and video processing, remote sensing and scientific sensing data modeling and analysis.]]></description>
										<content:encoded><![CDATA[
<p>Ying Liu received her Ph.D. degree in the field of signal and image processing at the University of Waterloo in the department of Systems Design Engineering in 2011. She received her B.E. degree from Huazhong University of Science and Technology, and her M.Sc. from Chinese Academy of Science.</p>



<p>Her research is primarily in image and video processing, statistical modeling and machine learning. She has published and reviewed several papers for key journals and conferences in the related areas of image processing, image analysis and pattern recognition.</p>



<p>Before her PhD, Ying worked for four years on the research and development of signal processing for underwater systems. In 2010, she collaborated with the compression research group in Research In Motion Ltd. on video processing research for the coming standard HEVC. Recently, she is collaborating with Center of Pattern Analysis and Machine Intelligence, University of Waterloo and working on data analysis and machine learning.</p>



<p>Email: <a href="mailto:y30liu%40engmail.uwaterloo.ca">30liu@engmail.uwaterloo.ca</a></p>


<div class="lazyblock-supervisors-18AoPb wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-Z13u2SG wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>My research interests lie in multidimensional signal processing, statistical modeling, and machine learning. My work is focused on the developing methodology and application algorithms for multivariate data analysis, multiresolution representation and estimation, in particular, for image and video processing, remote sensing and scientific sensing data modeling and analysis.</div>

<div class="lazyblock-research-15F0q wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/multiresolution-techniques/>Multiresolution Techniques</a><br><a href=https://vip.uwaterloo.ca/remote-sensing/>Remote Sensing</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><a href=https://vip.uwaterloo.ca/stochastic-models/>Stochastic Models</a><br><a href=https://vip.uwaterloo.ca/video-analysis/>Video Analysis</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br><a href=https://vip.uwaterloo.ca/sar-sea-ice-image-synthesis/>SAR Sea Ice Image Synthesis</a><br></div>

<div class="lazyblock-publications-Z20sJ5I wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(57192565882);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Porous Media</title>
		<link>https://vip.uwaterloo.ca/porous-media/</link>
		
		<dc:creator><![CDATA[vipadmin]]></dc:creator>
		<pubDate>Tue, 21 Mar 2023 16:19:05 +0000</pubDate>
				<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Research Demos]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=969</guid>

					<description><![CDATA[Porous media include a variety of materials, such as bone, cartilage, concrete, soil, and wood. All such materials allow the flow of water, or other liquids, and the understanding and modeling of this flow can be essential in areas of human health, construction, and groundwater studies. The image processing challenge in porous media is the reconstruction of the 3D architecture of void spaces given some sort of data, a particularly challenging task since many porous media contain pore structures on a wide range of scales.]]></description>
										<content:encoded><![CDATA[
<p>Porous media include a variety of materials, such as bone, cartilage, concrete, soil, and wood. All such materials allow the flow of water, or other liquids, and the understanding and modeling of this flow can be essential in areas of human health, construction, and groundwater studies. The image processing challenge in porous media is the reconstruction of the 3D architecture of void spaces given some sort of data, a particularly challenging task since many porous media contain pore structures on a wide range of scales.</p>



<p>Our approach to this class of problems has been to treat the problem as an inverse or estimation problem.&nbsp;Because the fine-scale porous field is discrete (pore / not pore), discrete-state solvers such as Simulated Annealing are quite effective, such as the following example from the work of Mohebi:</p>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-1 wp-block-group-is-layout-flex">
<figure class="wp-block-image"><img decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/azadeh1.gif?itok=yzQOfR65" alt="Original Image"/><figcaption class="wp-element-caption">Original Image</figcaption></figure>



<figure class="wp-block-image"><img decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/azadeh2.gif?itok=biB8Sdw5" alt="Observed or Measured Image (shows loss of quality in comparison to original image)"/><figcaption class="wp-element-caption">Observed or Measured Image</figcaption></figure>



<figure class="wp-block-image"><img decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/azadeh3.gif?itok=1I6vmsDU" alt="Reconstructed Image (Greater image quality than observed or measured image)"/><figcaption class="wp-element-caption">Reconstructed Result</figcaption></figure>
</div>



<p>The above work left us with two challenges:</p>



<ol class="wp-block-list">
<li>How to address very large fields with structure on a wide variety of scales.</li>



<li>How to address nonstationary fields, those with multiple distinct behaviours.</li>
</ol>



<p>The work of Liu considered hierarchical models (challenge 1) having hidden fields containing a label describing some attribute of behaviour (challenge 2):</p>



<figure class="wp-block-image aligncenter"><img decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/ying1.gif?itok=GNw_OF4D" alt="Hierarchical models having hidden fields"/></figure>



<p>&nbsp;This work led to promising results on fairly complex fields:</p>



<div class="wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-2 wp-block-group-is-layout-flex">
<figure class="wp-block-image is-resized"><img fetchpriority="high" decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/ying2-true.gif?itok=90PNZXe3" alt="True Picture - Original Porous Field" width="225" height="224"/><figcaption class="wp-element-caption">Original Porous Field</figcaption></figure>
</div>



<div class="wp-block-group is-content-justification-center is-layout-flex wp-container-core-group-is-layout-3 wp-block-group-is-layout-flex">
<figure class="wp-block-image is-resized"><img decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/ying2-meas.gif?itok=j74JAX3q" alt="Low Resolution, Measured Field" width="200" height="200"/><figcaption class="wp-element-caption">Low Resolution, Measured Field</figcaption></figure>



<figure class="wp-block-image is-resized"><img decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/ying2-label.gif?itok=U0sa8W8c" alt="Estimated Hidden Label 1" width="200" height="200"/><figcaption class="wp-element-caption">Estimated Hidden Label 1</figcaption></figure>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/ying2-label2.gif?itok=tvVwcunR" alt="Estimated Hidden Label 2" width="200" height="200"/><figcaption class="wp-element-caption">Estimated Hidden Label 2</figcaption></figure>
</div>



<div class="wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-4 wp-block-group-is-layout-flex">
<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/ying2-est.gif?itok=c-27lezf" alt="Estimated Field - Liu" width="200" height="200"/><figcaption class="wp-element-caption">Estimated Field &#8211; Liu</figcaption></figure>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/ying2-wave1.gif?itok=bAg-rCWh" alt="Estimated Field -  Wavelength 1" width="200" height="200"/><figcaption class="wp-element-caption">Estimated Field &#8211; Wavelet</figcaption></figure>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://uwaterloo.ca/vision-image-processing-lab/sites/ca.vision-image-processing-lab/files/styles/body-500px-wide/public/uploads/images/ying2-wave2.gif?itok=CGY2uDcd" alt="Estimated Field -Wavelet 2" width="200" height="200"/><figcaption class="wp-element-caption">Estimated Field &#8211; Wavelet</figcaption></figure>
</div>



<p>The performance of the method proposed by Liu is quite strikingly better than that produced by other wavelet resolution-enhancement methods.</p>



<h4 class="wp-block-heading has-source-serif-pro-font-family"><strong>Related people</strong></h4>



<h5 class="wp-block-heading has-source-serif-pro-font-family" style="text-transform:capitalize"><strong>Directors</strong></h5>


<div class="lazyblock-related-people-UNxDX wp-block-lazyblock-related-people"><p>
  <a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></p></div>


<h5 class="wp-block-heading has-source-serif-pro-font-family" style="text-transform:capitalize"><strong>Students</strong></h5>


<div class="lazyblock-related-people-UDaxH wp-block-lazyblock-related-people"><p>
  </p></div>


<h5 class="wp-block-heading has-source-serif-pro-font-family" style="text-transform:capitalize"><strong>Alumni</strong></h5>


<div class="lazyblock-related-people-1HGyQa wp-block-lazyblock-related-people"><p>
  <a href=https://vip.uwaterloo.ca/w-campaigne/>Wesley Campaigne</a>, <a href=https://vip.uwaterloo.ca/s-alexander/>Simon Alexander</a>, <a href=https://vip.uwaterloo.ca/a-mohebi/>Azadeh Mohebi</a>, <a href=https://vip.uwaterloo.ca/y-liu/>Ying Liu</a></p></div>


<h4 class="wp-block-heading"><strong>Related research areas</strong></h4>



<p><a href="https://vip.uwaterloo.ca/multiresolution-techniques/" data-type="post" data-id="795">Multiresolution Techniques</a></p>



<p><a href="https://vip.uwaterloo.ca/stochastic-models/" data-type="post" data-id="804">Stochastic Models</a></p>



<p><a href="https://vip.uwaterloo.ca/scientific-imaging/" data-type="post" data-id="801">Scientific Imaging</a></p>



<h4 class="wp-block-heading"><strong>Related publications</strong></h4>


<div class="lazyblock-demo-publications-Z1piGrd wp-block-lazyblock-demo-publications"><meta charset="utf-8">
  <!--<meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
--><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#journalArticles, #conferencePapers {
    font-weight: bold;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-size: 1.15rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    padding-left: 0;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-size: 1.15rem;
    white-space: pre-wrap;
}

#pubDataConference {
    padding-left: 0;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-size: 1.15rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  <div class="col ps-0" id="peoplePublications"></div>
   <div class="row">
      
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>
<script>
    
    const scopusIDDC = 7003991297; //David A Clausi
	const scopusIDJZ = 6603746225; //John Zelek
	const scopusIDPF = 7004156748; //Paul Fieguth
	const scopusIDAW = 15073608800; //Alexander Wong
    const userDC = "dclausi";
	const userJZ = "jzelek";
	const userPF = "pfieguth";
	const userAW = "a28wong";
	let pubDataJournals = "";
	let pubDataConference = "";
    let displayNumber = 200;
    let titleContents = 'Frozen-state hierarchical annealing, Statistical fusion of two-scale images of porous media, Modeling and reconstruction of two-scale porous media using MRI measurement, Modeling of multiscale porous media using multiple Markov random fields, Discrete-state modeling of porous media over multiple scales, Hierarchical annealing of porous media, Hierarchical MCMC sampling, Hierarchical annealing for random image synthesis'.toLowerCase().split(", ");
    let publications = [];
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://api.openaccessbutton.org/find?id=";
    
    displayPublications();
  

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}
    const firstDisplay = 50;

   async function displayPublications(number) {
	    getPublications(api+userDC).then(
            function(value) {
                const size = value.rows.length;
                let a = 0;
                for(var i = 0; i < size; i++)
                {
                    if(titleContents.some(substring => value.rows[i].title.toLowerCase().includes(substring)))
                    {
                        publications.push(value.rows[i]);
                    }
                }
                getPublications(api+userPF).then(
                    function(value) {
                        const size = value.rows.length;
                        for(var i = 0; i < size; i++)
                        {
                            if(titleContents.some(substring => value.rows[i].title.toLowerCase().includes(substring)))
                            {
                                publications.push(value.rows[i]);
                            }
                        }
                        getPublications(api+userJZ).then(
                            function(value) {
                                const size = value.rows.length;
                                for(var i = 0; i < size; i++)
                                {
                                    if(titleContents.some(substring => value.rows[i].title.toLowerCase().includes(substring)))
                                    {
                                        publications.push(value.rows[i]);
                                    }
                                }
                                getPublications(api+userAW).then(
                                    function(value) {
                                        const size = value.rows.length;
                                        let pubListJournals = "";
                                        let pubListConference = "";
                                        for(var i = 0; i < size; i++)
                                        {
                                            if(titleContents.some(substring => value.rows[i].title.toLowerCase().includes(substring)))
                                            {
                                                publications.push(value.rows[i]);
                                            }
                                        }
                                        const key = 'title';
                                        publications = [...new Map(publications.map(item => [item[key], item])).values()];
                                        publications.sort(function(a,b){return b.year - a.year});
                                        let totalSize = publications.length;
                                        for(var i = 0; i < totalSize; i++)
                                        {
                                            let publication = "";
                                            let authors = publications[i].list_names_of_authors.split(", ");
                                            lastIndex = authors.length - 1;
                                            authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                            for(var j = 0; j <= lastIndex; j++)
                                            {  
                                                let authorLink = "";
                                                let authorsLC = authors[j].toLowerCase();
                                                if(j == lastIndex)
                                                {
                                                    if(authorsLC.includes("."))
                                                    {  
                                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                                        authorLink += "-";
                                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                                    }
                                                    else
                                                    {
                                                        authorLink += authorsLC.charAt(authorsLC.length - 1);
                                                        authorLink += "-";
                                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                                    }
                                                    
                                                }
                                                else
                                                {
                                                    authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                                    authorLink += "-";
                                                    authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                                    
                                                }
                                                authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                                if(j != lastIndex)
                                                {
                                                    publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                                }
                                                else 
                                                {
                                                    publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                                }
                                            }

                                            publication += ', "';
                                            publication += publications[i].title;
                                            publication += '", ';
                                            publication += publications[i].pub_name;
                                            if (!isConference(publications[i]))
                                            {
                                                publication += ", vol. ";
                                                publication += publications[i].volume;
                                                publication += ", ";
                                            }
                                            if (publications[i].page_range != "" && !isConference(publications[i]))
                                            {
                                                publication += "pp. ";
                                                publication += publications[i].page_range;
                                                publication += ", ";
                                            }
                                            else if(isConference(publications[i]))
                                            {
                                                publication += ", ";
                                            }
                                            publication += publications[i].year;
                                            publication += ". ";
                                            publication += `<a href="#" onclick="generateLink(this, '${publications[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                            publication += "\n\n";
                                            if (isConference(publications[i]))
                                            {
                                                pubListConference += publication;
                                            }
                                            else
                                            {
                                                pubListJournals += publication;
                                            }
                                        }
                                        document.getElementById('pubDataConference').innerHTML = pubListConference;
                                        document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                                        if(pubListConference == "")
                                        {
                                          document.getElementById('conferencePapers').style.display = "none";
                                        }
                                        if(pubListJournals == "")
                                        {
                                          document.getElementById('journalArticles').style.display = "none";
                                        }
                                    },
                                    function(error) {
                                        document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";
                                        document.getElementById('pubDataConference').innerHTML = "";
                                    }
                                )
                            
                            },
                            function(error) {
                                document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";
                                document.getElementById('pubDataConference').innerHTML = "";
                            }
                        )
                    },
                    function(error) {
                        document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";
                        document.getElementById('pubDataConference').innerHTML = "";
                    }
                )
            },
            function(error) {
                document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";
                document.getElementById('pubDataConference').innerHTML = "";
            }
        )
    }

   
</script></div>


<h5 class="wp-block-heading has-source-serif-pro-font-family" style="text-transform:capitalize"><strong>Theses</strong></h5>



<p><a href="https://vip.uwaterloo.ca/w-campaigne">Campaigne, W.</a>, &#8220;Frozen-State Hierarchical Annealing&#8221;, Department of Systems Design Engineering, 2012.&nbsp;<a href="https://vip.uwaterloo.ca/wp-content/uploads/2023/04/campaigne_wesley_thesis_1.pdf">Get it here.</a></p>



<p><a href="https://vip.uwaterloo.ca/y-liu">Liu, Y.</a>, &#8220;Hidden Hierarchical Markov Fields for Image Modeling&#8221;, Department of Systems Design Engineering, Waterloo, Ontario, Canada, University of Waterloo, 2011.&nbsp;<a href="https://vip.uwaterloo.ca/wp-content/uploads/2023/04/hidden_hierarchical_markov_fields_for_image_modeling_1.pdf" data-type="URL" data-id="https://vip.uwaterloo.ca/wp-content/uploads/2023/04/hidden_hierarchical_markov_fields_for_image_modeling_1.pdf">Get it here.</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Paul Fieguth</title>
		<link>https://vip.uwaterloo.ca/p-fieguth/</link>
		
		<dc:creator><![CDATA[Paul Fieguth]]></dc:creator>
		<pubDate>Thu, 23 Feb 2023 20:12:37 +0000</pubDate>
				<category><![CDATA[3D Reconstruction of Underwater Scenes]]></category>
		<category><![CDATA[Biomedical Imaging]]></category>
		<category><![CDATA[BIOSCAN Insect Biodiversity Assessment]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Decoupled Active Contours]]></category>
		<category><![CDATA[Directors]]></category>
		<category><![CDATA[Image Denoising]]></category>
		<category><![CDATA[Image Segmentation/Classification]]></category>
		<category><![CDATA[Multiresolution Techniques]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[SAR Sea Ice Image Synthesis]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Skin Cancer Detection]]></category>
		<category><![CDATA[Stochastic Models]]></category>
		<category><![CDATA[Texture Classification]]></category>
		<category><![CDATA[Video Analysis]]></category>
		<category><![CDATA[VIP VPA dataset]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=452</guid>

					<description><![CDATA[My research interests are in the area of accelerated computational methods applied to large statistical problems in image processing, computer vision, and remote sensing.]]></description>
										<content:encoded><![CDATA[
<p>Paul Fieguth received his B.A.Sc. degree from the University of Waterloo, Ontario, Canada, in 1991 and his Ph.D. degree from the Massachusetts Institute of Technology, Cambridge, in 1995, both degrees in electrical engineering. He joined the faculty at the University of Waterloo in 1996, where he is currently Professor and, since 2010, Department Chair in Systems Design Engineering.  He has held visiting appointments at the University of Heidelberg in Germany, at INRIA/Sophia in France, at the Cambridge Research Laboratory in Boston, at Oxford University and the Rutherford Appleton Laboratory in England, and with postdoctoral positions in Computer Science at the  University of Toronto and in Information and Decision Systems at MIT.</p>



<h2 class="wp-block-heading"><strong>Students</strong></h2>



<h3 class="wp-block-heading"><strong>Supervision &#8211; Current</strong></h3>



<h4 class="wp-block-heading"><strong>PDF</strong></h4>


<div class="lazyblock-related-people-28FOiG wp-block-lazyblock-related-people"><p>
  <a href=https://vip.uwaterloo.ca/amir-nazemi/>Amir Nazemi</a></p></div>


<h4 class="wp-block-heading" style="text-transform:capitalize"><strong>ph.D.</strong></h4>


<div class="lazyblock-related-people-Z2vQEjB wp-block-lazyblock-related-people"><p>
  </p></div>


<h4 class="wp-block-heading" style="text-transform:capitalize"><strong>M.A.Sc.</strong></h4>


<div class="lazyblock-related-people-N4xlt wp-block-lazyblock-related-people"><p>
  <a href=https://vip.uwaterloo.ca/yuanpei-robin-xiang/>Yuanpei (Robin) Xiang</a> ()</p></div>


<h3 class="wp-block-heading"><strong>Supervision &#8211; Completed</strong></h3>



<h4 class="wp-block-heading"><strong>PDF</strong></h4>


<div class="lazyblock-related-people-Z1XXJPz wp-block-lazyblock-related-people"><p>
  <a href=https://vip.uwaterloo.ca/zahra-gharaee/>Zahra Gharaee</a> (2024), <a href=https://vip.uwaterloo.ca/amir-nazemi/>Amir Nazemi</a> (), <a href=https://vip.uwaterloo.ca/b-hongbo/>Bi Hongbo</a> (2015)</p></div>


<h4 class="wp-block-heading" style="text-transform:capitalize"><strong>ph.D.</strong></h4>


<div class="lazyblock-related-people-Z2plEFS wp-block-lazyblock-related-people"><p>
  <a href=https://vip.uwaterloo.ca/j-park/>Jinman (Eddie) Park</a> (2025), <a href=https://vip.uwaterloo.ca/n-pellegrino/>Nicholas Pellegrino</a> (2025), <a href=https://vip.uwaterloo.ca/a-chung/>Audrey Chung</a> (2020), <a href=https://vip.uwaterloo.ca/i-kennedy/>Ian Kennedy</a> (2019), <a href=https://vip.uwaterloo.ca/a-carrington/>Andre Carrington</a> (2018), <a href=https://vip.uwaterloo.ca/e-barshan/>Elnaz Barshan</a> (2016), <a href=https://vip.uwaterloo.ca/k-kasiri/>Keyvan Kasiri</a> (2016), <a href=https://vip.uwaterloo.ca/a-gawish/>Ahmed Gawish</a> (2015), <a href=https://vip.uwaterloo.ca/j-liu/>Jiange Grace Liu</a> (2015), <a href=https://vip.uwaterloo.ca/j-eichel/>Justin Eichel</a> (2013), <a href=https://vip.uwaterloo.ca/c-liu/>Chenyi Liu</a> (2012), <a href=https://vip.uwaterloo.ca/y-liu/>Ying Liu</a> (2011), <a href=https://vip.uwaterloo.ca/l-liu/>Li Liu</a> (2011), <a href=https://vip.uwaterloo.ca/a-mishra/>Akshaya Mishra</a> (2010), <a href=https://vip.uwaterloo.ca/a-mohebi/>Azadeh Mohebi</a> (2009), <a href=https://vip.uwaterloo.ca/n-kachouie/>Nezam Kachouie</a> (2008), <a href=https://vip.uwaterloo.ca/s-wesolkowski/>Slawo Wesolkowski</a> (2007), <a href=https://vip.uwaterloo.ca/s-alexander/>Simon Alexander</a> (2005), <a href=https://vip.uwaterloo.ca/z-azimifar/>Zohreh Azimifar</a> (2005), <a href=https://vip.uwaterloo.ca/l-lee/>Leo Jingyu Lee</a> (2004), <a href=https://vip.uwaterloo.ca/f-jin/>Fu Jin</a> (2004), <a href=https://vip.uwaterloo.ca/f-khellah/>Fakhry Khellah</a> (2001), <a href=https://vip.uwaterloo.ca/s-sinha/>Sunil Sinha</a> (2000), <a href=https://vip.uwaterloo.ca/g-carballo/>Gabriel Carballo</a> (1999), <a href=https://vip.uwaterloo.ca/amir-nazemi/>Amir Nazemi</a> ()</p></div>


<h4 class="wp-block-heading" style="text-transform:capitalize"><strong>M.A.Sc.</strong></h4>


<div class="lazyblock-related-people-Z2sdprk wp-block-lazyblock-related-people"><p>
  <a href=https://vip.uwaterloo.ca/auguste-l-w-koh/>Auguste L. W. Koh</a> (2024), <a href=https://vip.uwaterloo.ca/soyeon-jang/>Soyeon Jang</a> (), <a href=https://vip.uwaterloo.ca/n-pellegrino-1/>Nicholas Pellegrino</a> (2022), <a href=https://vip.uwaterloo.ca/x-hu/>Xiaodan (Charlotte) Hu</a> (2019), <a href=https://vip.uwaterloo.ca/v-sankar/>Vignesh Sankar</a> (2018), <a href=https://vip.uwaterloo.ca/a-kumar/>Abhishek Kumar</a> (2012), <a href=https://vip.uwaterloo.ca/a-jain/>Aanchal Jain</a> (2012), <a href=https://vip.uwaterloo.ca/w-campaigne/>Wesley Campaigne</a> (2012), <a href=https://vip.uwaterloo.ca/n-cavan/>Neil Cavan</a> (2011), <a href=https://vip.uwaterloo.ca/s-zaboli/>Shiva Zaboli</a> (2011), <a href=https://vip.uwaterloo.ca/k-mcbride/>Kurtis McBride</a> (2007)</p></div>

<div class="lazyblock-research-vthYs wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/biomedical-imaging/>Biomedical Imaging</a><br><a href=https://vip.uwaterloo.ca/bioscan-insect-biodiversity-assessment/>BIOSCAN Insect Biodiversity Assessment</a><br><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/image-segmentation-classification/>Image Segmentation/Classification</a><br><a href=https://vip.uwaterloo.ca/multiresolution-techniques/>Multiresolution Techniques</a><br><a href=https://vip.uwaterloo.ca/remote-sensing/>Remote Sensing</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><a href=https://vip.uwaterloo.ca/stochastic-models/>Stochastic Models</a><br><a href=https://vip.uwaterloo.ca/video-analysis/>Video Analysis</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/3d-reconstruction-of-underwater-scenes/>3D Reconstruction of Underwater Scenes</a><br><a href=https://vip.uwaterloo.ca/decoupled-active-contours/>Decoupled Active Contours</a><br><a href=https://vip.uwaterloo.ca/image-denoising/>Image Denoising</a><br><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br><a href=https://vip.uwaterloo.ca/sar-sea-ice-image-synthesis/>SAR Sea Ice Image Synthesis</a><br><a href=https://vip.uwaterloo.ca/skin-cancer-detection/>Skin Cancer Detection</a><br><a href=https://vip.uwaterloo.ca/texture-classification/>Texture Classification</a><br></div>


<meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
   font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
    
    const scopusID = 7004156748; //Paul Fieguth
    const user = "pfieguth";
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=" +user;
   const openAccess = "https://bg.api.oa.works/find?id=";
    
    displayPublications();

   async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        id.innerHTML = "loading..."
        title = title.replaceAll(/ /g, '%20');
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function displayPublications() {
	    getPublications(api).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                //document.getElementById("testLink").innerHTML = value.rows[1].list_names_of_authors;
                //break at commas, ensure you end up with Clausi D or Fang Y. Then add - and remove spaces and reverse
                //gives you d-clausi, y-fang. For hyperlinking to page.
            },
            function(error) {document.getElementById('publicationData').innerHTML = "Error retrieving data.";}
        )
    }

    function isConference(publication)
    {
        return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
    }
</script>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
