Page MenuHomePhabricator
Authored By
j762e
Apr 3 2020, 1:46 PM
Size
105 KB
Referenced Files
None
Subscribers
None

CDash _ MITK.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0072)http://cdash.mitk.org/viewCoverageFile.php?buildid=723463&fileid=6219024 -->
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CDash : MITK</title>
<meta name="robots" content="noindex,nofollow">
<link rel="StyleSheet" type="text/css" href="./CDash _ MITK_files/cdash.css">
<!--[if IE]>
<script language="javascript" type="text/javascript" src="javascript/excanvas.js">
</script>
<![endif]-->
<link rel="shortcut icon" href="http://cdash.mitk.org/favicon.ico">
<script src="./CDash _ MITK_files/jquery-1.6.2.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/jquery.flot.min.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/jquery.flot.selection.min.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/tooltip.js.Download" type="text/javascript" charset="utf-8"></script>
<link type="text/css" rel="stylesheet" href="./CDash _ MITK_files/jquery.qtip.min.css">
<script src="./CDash _ MITK_files/jquery.qtip.min.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/jquery-ui-1.8.16.min.js.Download" type="text/javascript" charset="utf-8"></script>
<link type="text/css" rel="stylesheet" href="./CDash _ MITK_files/jquery-ui-1.8.16.css">
<script src="./CDash _ MITK_files/cdashmenu.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/jquery.cookie.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/jquery.tablesorter.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/cdashTableSorter.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/jquery.metadata.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/jtip.js.Download" type="text/javascript" charset="utf-8"></script>
<script src="./CDash _ MITK_files/jqModal.js.Download" type="text/javascript" charset="utf-8"></script>
<link type="text/css" rel="stylesheet" media="all" href="./CDash _ MITK_files/jqModal.css">
<style type="text/css">:root topadblock, :root script[src^="http://free-shoutbox.net/app/webroot/shoutbox/sb.php?shoutbox="] + #freeshoutbox_content, :root input[onclick^="window.open('http://www.FriendlyDuck.com/"], :root img[alt^="Fuckbook"], :root iframe[src^="http://static.mozo.com.au/strips/"], :root iframe[id^="google_ads_iframe"], :root header#hdr + #main > div[data-hveid], :root div[jscontroller="U835zd"] + c-wiz[jsrenderer="YnuqN"], :root div[id^="zergnet-widget"], :root div[id^="traffective-ad-"], :root div[id^="sticky_ad_"], :root div[id^="q1-adset-"], :root div[id^="proadszone-"], :root div[id^="mainads"], :root div[id^="lazyad-"], :root div[id^="google_dfp_"], :root div[id^="google_ads_iframe_"], :root div[id^="dmRosAdWrapper"], :root div[id^="div-gpt-ad"], :root div[id^="div-adtech-ad-"], :root div[id^="dfp-slot-"], :root div[id^="dfp-ad-"], :root div[id^="block-views-topheader-ad-block-"], :root div[id^="advt-"], :root #\5f _admvnlb_modal_container, :root div[id^="adspot-"], :root input[onclick^="window.open('http://www.friendlyduck.com/"], :root div[id^="ads300_250-widget"], :root div[id^="ads250_250-widget"], :root div[id^="ads120_600-widget"], :root div[id^="adrotate_widgets-"], :root div[id^="adfox_"], :root div[id^="ad_script_"], :root div[id^="ad_rect_"], :root #content > #right > .dose > .dosesingle, :root div[id^="ad_bigbox_"], :root div[id^="ad-server-"], :root div[id^="acm-ad-tag-"], :root div[id^="ADV-SLOT-"], :root a[href^="http://www.myfreecams.com/?co_id="][href*="&track="], :root div[id^="advads-"], :root div[data-role="sidebarAd"], :root div[data-native_ad], :root a[href^=" http://n47adshostnet.com/"], :root div[data-id^="CarouselPLA-"] > .kzwEHf, :root div[class^="proadszone-"], :root div[class^="pane-google-admanager-"], :root a[href^="http://adultgames.xxx/"], :root a[href^="http://semi-cod.com/clicks/"], :root div[class^="index_displayAd_"], :root a[href^="http://www.affbuzzads.com/affiliate/"], :root div[class^="index_adBeforeContent_"], :root div[class^="index_adAfterContent_"], :root a[href^="http://dwn.pushtraffic.net/"], :root div[class^="hp-ad-rect-"], :root div[class^="block-openx-"], :root div[class^="ads-partner-"], :root div[class^="ad_border_"], :root a[href^="http://adprovider.adlure.net/"], :root div[class^="Ad__container"], :root div[class*="_AdInArticle_"], :root div[class^="ad_position_"], :root a[href^="http://www.afco2go.com/srv.php?"], :root div[aria-label="Ads"], :root div > [class][onclick*=".updateAnalyticsEvents"], :root bottomadblock, :root a[href^="https://watchmygirlfriend.tv/"], :root aside[itemtype="https://schema.org/WPAdBlock"], :root a[href^="http://c.actiondesk.com/"], :root aside[id^="div-gpt-ad"], :root div[id^="ad-cid-"], :root a[href^="http://lp.ezdownloadpro.info/"], :root a[href^="http://uploaded.net/ref/"], :root aside[id^="advads_ad_widget-"], :root aside[id^="adrotate_widgets-"], :root amp-ad-custom, :root [id*="MGWrap"], :root ad-desktop-sidebar, :root a[style="display:block;width:300px;min-height:250px"][href^="http://li.cnet.com/click?"], :root div[id^="div-ads-"], :root a[href^="http://at.atwola.com/"], :root a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"] + .ob_source, :root a[onmousedown^="this.href='http://paid.outbrain.com/network/redir?"][target="_blank"] + .ob_source, :root a[href^="http://popup.taboola.com/"], :root a[href^="//adbit.co/?a=Advertise&"], :root a[onmousedown^="this.href='/wp-content/embed-ad-content/"], :root div[class^="AdhesionAd_"], :root div[class^="Ad__bigBox"], :root div[role="navigation"] + c-wiz > script + div > .kxhcC, :root a[onclick*="//m.economictimes.com/etmack/click.htm"], :root a[href^="https://www.travelzoo.com/oascampaignclick/"], :root a[href^="https://www.share-online.biz/affiliate/"], :root a[href^="https://www.securegfm.com/"], :root DFP-AD, :root a[href^="//porngames.adult/?SID="], :root a[href^="https://www.oneclickroot.com/?tap_a="] > img, :root a[href^="http://adserver.adtech.de/"], :root a[href^="https://www.mrskin.com/tour"], :root div[id^="advads_"], :root a[href^="https://www.moscarossa.biz/"], :root a[href^="https://www.goldenfrog.com/vyprvpn?offer_id="][href*="&aff_id="], :root .trc_related_container div[data-item-syndicated="true"], :root a[href^="https://www.firstload.com/affiliate/"], :root a[href^="https://www.clicktraceclick.com/"], :root a[href^="https://www.camyou.com/?cam="][href*="&track="], :root a[href^="https://www.bebi.com"], :root a[href^="https://www.adskeeper.co.uk/"], :root a[href^="http://pan.adraccoon.com?"], :root div[id^="ad-gpt-"], :root a[href^="http://farm.plista.com/pets"], :root a[href^="https://windscribe.com/promo/"], :root a[href^="http://ad-emea.doubleclick.net/"], :root a[href^="https://understandsolar.com/signup/?lead_source="][href*="&tracking_code="], :root div[id^="tms-ad-dfp-"], :root a[href^="https://trust.zone/go/r.php?RID="], :root a[href^="https://track.adform.net/"], :root a[href^="https://traffic.bannerator.com/"], :root a[href^="https://tracking.truthfinder.com/?a="], :root a[href^="https://track.ultravpn.com/"], :root a[href^="https://www.adultempire.com/"][href*="?partner_id="], :root a[href^="https://track.healthtrader.com/"], :root a[href^="https://track.clickmoi.xyz/"], :root a[href^="https://track.afftck.com/"], :root a[href^="https://control.trafficfabrik.com/"], :root a[href^="https://track.52zxzh.com/"], :root .ra[align="right"][width="30%"], :root a[href^="https://tour.mrskin.com/"], :root div[class^="gemini-ad"], :root a[href^="http://pwrads.net/"], :root a[href^="//oardilin.com/"], :root a[href^="https://torguard.net/aff.php"], :root a[href^="https://www.what-sexdating.com/"], :root a[href^="https://tc.tradetracker.net/"] > img, :root a[href^="https://t.mobtya.com/"], :root a[href^="https://t.hrtye.com/"], :root div[id^="ad_head_celtra_"], :root a[href^="https://t.grtyi.com/"], :root aside[id^="tn_ads_widget-"], :root a[href^="https://syndication.exoclick.com/splash.php?"], :root div[id^="YFBMSN"], :root div[id^="ad-div-"], :root a[href^="https://secure.eveonline.com/ft/?aid="], :root a[href^="https://secure.bstlnk.com/"], :root a[href^="https://rev.adsession.com/"], :root a[href^="https://retiremely.com/"], :root div[id^="yandex_ad"], :root a[href^="http://y1jxiqds7v.com/"], :root a[href^="https://www.hotgirls4fuck.com/"], :root a[href^="https://www.pornhat.com/"][rel="nofollow"], :root AD-SLOT, :root a[href^="https://pubads.g.doubleclick.net/"], :root a[href^="https://prf.hn/click/"][href*="/adref:"], :root #rhs_block .mod > .gws-local-hotels__booking-module, :root a[href^="http://www.my-dirty-hobby.com/?sub="], :root a[href^="https://porndeals.com/?track="], :root a[href^="https://mk-cdn.net/"], :root a[href^="https://mk-ads.com/"], :root a[href^="https://jmp.awempire.com/"], :root a[href^="https://members.linkifier.com/public/affiliateLanding?refCode="], :root a[href^="https://medleyads.com/"], :root a[href*=".approvallamp.club/"], :root a[href^="https://landing1.brazzersnetwork.com"], :root a[href^="https://land.rk.com/landing/"], :root .lads[width="100%"][style="background:#FFF8DD"], :root a[href^="https://land.brazzersnetwork.com/landing/"], :root a[href^="https://incisivetrk.cvtr.io/click?"], :root a[href^="https://iactrivago.ampxdirect.com/"], :root a[href^="http://www.usearchmedia.com/signup?"], :root a[onmousedown^="this.href='http://staffpicks.outbrain.com/network/redir?"][target="_blank"] + .ob_source, :root a[href^="https://googleads.g.doubleclick.net/pcs/click"], :root a[href^="http://cdn.adstract.com/"], :root a[href^="https://gogoman.me/"], :root a[href^="https://go.stripchat.com/"][href*="&campaignId="], :root a[href*=".inclk.com/"], :root a[href^="https://go.ad2up.com/"], :root a[href^="https://freeadult.games/"], :root a[href^="//nlkdom.com/"], :root a[onmousedown^="this.href='http://staffpicks.outbrain.com/network/redir?"][target="_blank"], :root a[href^="https://fonts.fontplace9.com/"], :root a[href^="http://clkmon.com/adServe/"], :root a[href^="https://flirtaescopa.com/"], :root [lazy-ad="leftthin_banner"], :root a[href^="https://dynamicadx.com/"], :root a[href^="http://wxdownloadmanager.com/dl/"], :root div[class^="local-feed-banner-ads"], :root .GFYY1SVE2 > .GFYY1SVD2 > .GFYY1SVG5, :root a[href^="https://djtcollectorclub.org/"][href*="?affiliate_id="], :root a[href^="https://lingthatsparleso.info/"], :root a[href^="https://click.plista.com/pets"], :root a[href^="https://chaturbate.xyz/"], :root a[href^="https://chaturbate.jjgirls.com/"][href*="?tour="], :root a[href^="https://chaturbate.com/in/?tour="], :root a[href^="https://chaturbate.com/affiliates/"], :root .mod > ._jH + .rscontainer, :root a[href^="https://blackorange.go2cloud.org/"], :root a[href^="http://www.1clickdownloader.com/"], :root a[href^="https://www.googleadservices.com/pagead/aclk?"], :root a[href^="https://awentw.com/"], :root a[href^="http://adultfriendfinder.com/p/register.cgi?pid="], :root a[href^="https://www.popads.net/users/"], :root iframe[src^="http://ad.yieldmanager.com/"], :root a[href^="http://pubads.g.doubleclick.net/"], :root a[href^="https://sexdatingz.live/"], :root a[href^="//bwnjijl7w.com/"], :root a[href^="https://adultfriendfinder.com/go/page/landing"], :root a[href*="pussl3.com"], :root a[href^="https://adswick.com/"], :root ADS-RIGHT, :root .GKJYXHBF2 > .GKJYXHBE2 > .GKJYXHBH5, :root a[href^="https://adserver.adreactor.com/"], :root a[href^="https://refpaano.host/"], :root a[href^="https://meet-to-fuck.com/tds"], :root a[href^="http://data.linoleictanzaniatitanic.com/"], :root a[href^="https://adhealers.com/"], :root a[href^="https://adclick.g.doubleclick.net/"], :root a[href^="https://ad.doubleclick.net/"], :root a[href^="http://zevera.com/afi.html"], :root a[href^="http://go.oclaserver.com/"], :root a[href^="https://ad.atdmt.com/"], :root .trc_rbox .syndicatedItem, :root a[href^="https://aaucwbe.com/"], :root a[href^="https://a.adtng.com/"], :root a[href^="https://8a1ccf65f2b1302.com/"], :root a[href^="http://xtgem.com/click?"], :root a[href^="https://ads.trafficpoizon.com/"], :root a[href^="http://rekoverr.com/"], :root a[href^="https://chaturbate.com/in/?track="], :root div[id^="cns_ads_"], :root a[data-obtrack^="http://paid.outbrain.com/network/redir?"], :root a[href^="http://www1.clickdownloader.com/"], :root a[href^="http://www.zergnet.com/i/"], :root a[href^="http://hyperies.info/"], :root a[href^="http://www.torntv-downloader.com/"], :root a[href^="http://www.tirerack.com/affiliates/"], :root div[class^="AdBannerWrapper-"], :root a[href^="http://www.text-link-ads.com/"], :root a[href^="http://www.streamate.com/exports/"], :root a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"], :root a[href^="http://www.sfippa.com/"], :root a[href^="http://www.xmediaserve.com/"], :root a[href^="http://www.sex.com/videos/?utm_"], :root a[href^="http://paid.outbrain.com/network/redir?"], :root a[href^="http://www.sex.com/?utm_"], :root a[onmousedown^="this.href='http://paid.outbrain.com/network/redir?"][target="_blank"], :root a[href^="http://www.roboform.com/php/land.php"], :root a[href^="http://secure.signup-page.com/"], :root a[href^="http://www.quick-torrent.com/download.html?aff"], :root a[href^="http://adexprt.me/"], :root a[href^="http://www.pinkvisualgames.com/?revid="], :root a[href^="https://trklvs.com/"], :root a[href^="http://www.paddypower.com/?AFF_ID="], :root div[data-spotim-slot], :root a[href^="http://www.freefilesdownloader.com/"], :root a[href^="http://www.mysuperpharm.com/"], :root .trc_rbox_border_elm .syndicatedItem, :root a[href^="http://www.myfreepaysite.com/sfw_int.php?aid"], :root a[href^="http://www.myfreepaysite.com/sfw.php?aid"], :root .rhsvw[style="background-color:#fff;margin:0 0 14px;padding-bottom:1px;padding-top:1px;"], :root a[href^="http://www.moneyducks.com/"], :root a[href^="http://bcntrack.com/"], :root a[href^="http://www.securegfm.com/"], :root a[href^="http://www.liversely.net/"], :root a[href^="http://www.linkbucks.com/referral/"], :root a[href^="//88d7b6aa44fb8eb.com/"], :root a[href^="http://www.ireel.com/signup?ref"], :root a[href*="=Adtracker"], :root a[href^="http://www.incredimail.com/?id="], :root a[href^="http://www.idownloadplay.com/"], :root a[href^="http://www.hitcpm.com/"], :root a[href^="http://www.gamebookers.com/cgi-bin/intro.cgi?"], :root div[id^="div_openx_ad_"], :root a[href^="http://www.friendlyquacks.com/"], :root a[href^="https://www.financeads.net/tc.php?"], :root a[href^="http://www.friendlyduck.com/AF_"], :root a[href*="emprestimo.eu"], :root a[href^="https://content.oneindia.com/www/delivery/"], :root a[href^="http://www.fpcTraffic2.com/blind/in.cgi?"], :root a[href^="http://www.fonts.com/BannerScript/"], :root a[href^="http://www.fleshlight.com/"], :root a[href^="http://www.flashx.tv/downloadthis"], :root div[class^="SponsoredAds"], :root .trc_rbox_div a[target="_blank"][href^="http://tab"], :root a[href^="https://americafirstpolls.com/"], :root a[href^="http://clickserv.sitescout.com/"], :root a[href^="http://www.firstload.de/affiliate/"], :root a[href^="http://www.twinplan.com/AF_"], :root a[href^="http://www.fducks.com/"], :root a[href^="http://www.epicgameads.com/"], :root a[href^="http://www.easydownloadnow.com/"], :root a[href^="http://www.duckssolutions.com/"], :root a[href^="https://go.trkclick2.com/"], :root a[href^="http://www.duckcash.eu/"], :root a[href^="http://go.seomojo.com/tracking202/"], :root a[href^="http://www.downloadweb.org/"], :root .commercial-unit-mobile-top .jackpot-main-content-container > .UpgKEd + .nZZLFc > .vci, :root a[href^="http://www.installads.net/"], :root div[role="navigation"] + c-wiz > div > .kxhcC, :root a[href^="http://www.download-provider.org/"], :root a[href^="http://www.down1oads.com/"], :root a[href^="https://trafficmedia.center/"], :root a[href^="http://www.dealcent.com/register.php?affid="], :root a[href^="https://gghf.mobi/"], :root a[href^="http://www.terraclicks.com/"], :root a[href^="http://www.coinducks.com/"], :root .rscontainer > .ellip, :root a[href^="http://www.clkads.com/adServe/"], :root a[href^="http://www.clickansave.net/"], :root div[class^="adpubs-"], :root a[href*="deliver.trafficfabrik.com"], :root a[href^="http://www.cash-duck.com/"], :root a[href^="http://www.bitlord.me/share/"], :root div[class^="Directory__footerAds"], :root a[href^="http://www.bet365.com/"][href*="?affiliate="], :root a[href^="http://www.bet365.com/"][href*="&affiliate="], :root a[href^="http://www.badoink.com/go.php?"], :root #mbEnd[cellspacing="0"][cellpadding="0"], :root div[data-ad-underplayer], :root a[href^="http://www.richducks.com/"], :root a[href^="http://www.babylon.com/welcome/index?affID"], :root a[href^="http://www.sexgangsters.com/?pid="], :root a[href^="http://www.amazon.co.uk/exec/obidos/external-search?"], :root a[href^="https://ads-for-free.com/click.php?"], :root a[href^="http://tracker.mybroadband.co.za/"], :root a[href^="http://www.socialsex.com/"], :root a[href^="https://www.camsoda.com/enter.php?id="], :root a[href^="http://go.ad2up.com/"], :root a[href^="https://badoinkvr.com/"], :root a[href*="/adServe/banners?"], :root a[href^="http://www.adxpansion.com"], :root .plistaList > .itemLinkPET, :root a[href^="http://www.adbrite.com/mb/commerce/purchase_form.php?"], :root a[href^="http://www.adultdvdempire.com/?partner_id="][href*="&utm_"], :root a[href^="http://www.ragazzeinvendita.com/?rcid="], :root a[href^="http://www.TwinPlan.com/AF_"], :root div[class^="adbanner_"], :root a[href^="http://www.brightwheel.info/"], :root a[href^="https://www.iclwy.xyz/"], :root a[href^="http://www.123-reg.co.uk/affiliate2.cgi"], :root div[itemtype="http://www.schema.org/WPAdBlock"], :root a[href^="http://wopertific.info/"], :root a[href^="http://bodelen.com/"], :root a[href^="http://wgpartner.com/"], :root a[href^="http://webgirlz.online/landing/"], :root div[id^="ads300_600-widget"], :root div[class^="Ad__adContainer"], :root a[href^="http://web.adblade.com/"], :root div[class^="BlockAdvert-"], :root a[href^="https://go.onclasrv.com/"], :root a[href^="http://wct.link/"], :root a[href^="https://topoffers.com/"][href*="/?pid="], :root a[href^="http://vinfdv6b4j.com/"], :root a[href^="http://s9kkremkr0.com/"], :root a[href^="https://www.nutaku.net/signup/landing/"], :root a[href^="http://us.marketgid.com"], :root a[href^="http://ul.to/ref/"], :root a[href^="https://adsrv4k.com/"], :root a[href^="http://trk.mdrtrck.com/"], :root a[href^="http://traffic.tc-clicks.com/"], :root div[class^="awpcp-random-ads"], :root a[href^="http://www.graboid.com/affiliates/"], :root a[href^="http://tracking.toroadvertising.com/"], :root a[href^="http://www.liutilities.com/"], :root a[href^="http://www.dl-provider.com/search/"], :root a[href^="http://tc.tradetracker.net/"] > img, :root a[href^="http://tracking.deltamediallc.com/"], :root a[href^="http://track.adform.net/"], :root a[href^="http://tour.affbuzzads.com/"], :root a[href^="https://iac.ampxdirect.com/"], :root a[href^="http://t.mdn2015x3.com/"], :root a[href^="http://galleries.securewebsiteaccess.com/"], :root a[href^="http://stateresolver.link/"], :root a[href^="http://sharesuper.info/"], :root a[href^="https://awecrptjmp.com/"], :root a[href^="http://server.cpmstar.com/click.aspx?poolid="], :root a[href^="http://campaign.bharatmatrimony.com/cbstrack/"], :root a[href^="https://www.mypornstarcams.com/landing/click/"], :root [href^="https://maskip.co/"], :root a[href^="http://getlinksinaseconds.com/"], :root a[href*=".intab.fun/"], :root a[href^="http://secure.signup-way.com/"], :root a[href*=".clkcln.com/"], :root [onclick^="window.open('http://adultfriendfinder.com/search/"], :root a[href^="http://secure.hostgator.com/~affiliat/"], :root a[href*="/cmd.php?ad="], :root a[href^="http://refpaano.host/"], :root #\5f _mom_ad_2, :root a[href^="http://ads.sprintrade.com/"], :root a[href^="http://record.commissionking.com/"], :root div[class*="-storyBodyAd-"], :root a[href^="http://record.betsafe.com/"], :root a[href^="https://keep2share.cc/pr/"], :root a[href^="https://clixtrac.com/"], :root [onclick*="content.ad/"], :root a[href^="http://adlev.neodatagroup.com/"], :root a[href^="http://reallygoodlink.extremefreegames.com/"], :root a[href^="http://promos.bwin.com/"], :root a[href*=".irtyc.com/"], :root a[href^="http://z1.zedo.com/"], :root a[href^="http://pokershibes.com/index.php?ref="], :root a[href^="http://mmo123.co/"], :root a[href^="https://www.oboom.com/ref/"], :root a[href^="http://media.paddypower.com/redirect.aspx?"], :root a[href^="http://allaptair.club/"], :root #rhs_block .xpdopen > ._OKe > div > .mod > ._yYf, :root a[href^="//ads.ad-center.com/"], :root a[href^="https://track.trkinator.com/"], :root a[href^="https://betway.com/"][href*="&a="], :root a[href^="https://affiliates.bet-at-home.com/processing/"], :root a[href^="http://dethao.com/"], :root a[href^="https://ads.ad4game.com/"], :root a[data-redirect^="this.href='http://paid.outbrain.com/network/redir?"], :root div[id^="ad-position-"], :root a[href^="http://liversely.com/"], :root a[href^="https://deliver.ptgncdn.com/"], :root a[href^="https://www.arthrozene.com/"][href*="?tid="], :root a[href^="http://feeds1.validclick.com/"], :root a[href^="http://latestdownloads.net/download.php?"], :root a[href^="http://k2s.cc/code/"], :root #topstuff > #tads, :root a[href*=".bang.com/"][href*="&aff="], :root a[data-widget-outbrain-redirect^="http://paid.outbrain.com/network/redir?"], :root a[href^="http://join3.bannedsextapes.com/track/"], :root a[href^="https://gamescarousel.com/"], :root a[href^="http://istri.it/?"], :root a[href^="http://www.fbooksluts.com/"], :root a[href^="http://www.cdjapan.co.jp/aff/click.cgi/"], :root a[href^="//api.ad-goi.com/"], :root a[href*="//ridingintractable.com/"], :root a[href^="http://intent.bingads.com/"], :root div[id^="crt-"][style], :root a[href^="http://igromir.info/"], :root a[href^="https://track.themadtrcker.com/"], :root a[href^="http://hyperlinksecure.com/go/"], :root .ob_container .item-container-obpd, :root a[href^="http://websitedhoome.com/"], :root a[href^="http://www.adskeeper.co.uk/"], :root a[href^="https://clickadilla.com/"], :root a[href^="http://www.gfrevenge.com/landing/"], :root a[href^="http://45eijvhgj2.com/"], :root a[href^="http://hpn.houzz.com/"], :root a[href*="?adlivk="][href*="&refer="], :root a[href^="http://searchtabnew.com/"], :root a[href^="//look.djfiln.com/"], :root a[href^="http://greensmoke.com/"], :root a[href^="//5e1fcb75b6d662d.com/"], :root a[href^="http://googleads.g.doubleclick.net/pcs/click"], :root a[href^="https://bnsjb1ab1e.com/"], :root a[href^="http://mo8mwxi1.com/"], :root div[class^="ResponsiveAd-"], :root a[href^="http://install.securewebsiteaccess.com/"], :root a[href^="http://www.revenuehits.com/"], :root a[href^="https://mcdlks.com/"], :root a[href^="https://bs.serving-sys.com"], :root .__y_elastic .__y_item, :root a[href^="http://go.mobisla.com/"], :root a[href^="//srv.buysellads.com/"], :root a[href^="http://g1.v.fwmrm.net/ad/"], :root .widget-pane-section-result[data-result-ad-type], :root a[href^="http://imads.integral-marketing.com/"], :root a[href^="http://freesoftwarelive.com/"], :root a[href^="http://adtrackone.eu/"], :root a[href^="http://finaljuyu.com/"], :root a[href^="http://fileloadr.com/"], :root a[href^="https://dltags.com/"], :root a[href^="http://onclickads.net/"], :root a[href^="http://extra.bet365.com/"][href*="?affiliate="], :root a[href^="http://ethfw0370q.com/"], :root [id^="bunyad_ads_"], :root a[href^="http://elitefuckbook.com/"], :root a[href^="http://eclkmpsa.com/"], :root a[href*="//3wr110.xyz/"], :root a[href^="http://earandmarketing.com/"], :root #content > #center > .dose > .dosesingle, :root a[href^="http://campaign.bharatmatrimony.com/track/"], :root a[href^="http://d2.zedo.com/"], :root a[href^="http://keep2share.cc/pr/"], :root a[href^="http://cp.cbbp1.com"], :root a[href^="http://contractallsticker.net/"], :root a[href^="http://codec.codecm.com/"], :root a[href^="http://refer.webhostingbuzz.com/"], :root a[href^="https://paid.outbrain.com/network/redir?"], :root a[href^="http://www.downloadplayer1.com/"], :root a[href^="http://clicks.binarypromos.com/"], :root iframe[name^="google_ads_iframe"], :root div[class^="largeRectangleAd_"], :root a[href^="https://dediseedbox.com/clients/aff.php?"], :root a[href^="http://www.wantstraffic.com/"], :root a[href^="http://databass.info/"], :root a[href^="http://www.urmediazone.com/signup"], :root a[href^="http://click.plista.com/pets"], :root a[href^="https://a.bestcontentpc.top/"], :root a[href^="http://chaturbate.com/affiliates/"], :root a[href^="http://www.firstload.com/affiliate/"], :root a[href^="http://www.friendlyadvertisements.com/"], :root a[href^="//00ae8b5a9c1d597.com/"], :root a[href^="http://cdn3.adbrau.com/"], :root a[href^="http://get.slickvpn.com/"], :root a[href^="http://amzn.to/"] > img[src^="data"], :root a[href^="http://bs.serving-sys.com/"], :root a[href^="http://cpaway.afftrack.com/"], :root a[href^="http://cdn.adsrvmedia.net/"], :root [lazy-ad="top_banner"], :root a[href^="http://360ads.go2cloud.org/"], :root a[href^="http://dftrck.com/"], :root a[href^="http://casino-x.com/?partner"], :root div[data-flt-ve="sponsored_search_ads"], :root a[href^="http://record.sportsbetaffiliates.com.au/"], :root a[href^="http://campeeks.com/"][href*="&utm_"], :root #flowplayer > div[style="position: absolute; width: 300px; height: 275px; left: 222.5px; top: 85px; z-index: 999;"], :root a[href^="http://download-performance.com/"], :root a[href^="http://www.on2url.com/app/adtrack.asp"], :root #\5f _nq__hh[style="display:block!important"], :root a[href^="http://guideways.info/"], :root a[href^="http://ads.expekt.com/affiliates/"], :root a[href^="http://callville.xyz/"], :root a[href^="http://xads.zedo.com/"], :root a[href^="http://www.affiliates1128.com/processing/"], :root a[href^="http://c.jumia.io/"], :root a[href^="https://bullads.net/get/"], :root a[href^="http://yads.zedo.com/"], :root a[href^="http://down1oads.com/"], :root a[href^="http://buysellads.com/"], :root a[href^="http://serve.williamhill.com/promoRedirect?"], :root a[href^="https://uncensored.game/"], :root td[valign="top"] > .mainmenu[style="padding:10px 0 0 0 !important;"], :root a[href^="http://feedads.g.doubleclick.net/"], :root a[href^="http://betahit.click/"], :root a[href^="http://bestorican.com/"], :root a[href^="http://bcp.crwdcntrl.net/"], :root a[href^="http://bc.vc/?r="], :root a[href^="http://banners.victor.com/processing/"], :root a[href^="http://adf.ly/?id="], :root a[href^="https://uncensored3d.com/"], :root div[data-subscript="Advertising"], :root a[href^="http://t.mdn2015x2.com/"], :root div[class$="dealnews"] > .dealnews, :root a[href^="http://click.payserve.com/"], :root a[href^="http://s5prou7ulr.com/"], :root a[href^="http://azmobilestore.co/"], :root a[href^="http://affiliate.glbtracker.com/"], :root a[href^="https://transfer.xe.com/signup/track/redirect?"], :root a[href^="http://anonymous-net.com/"], :root div[id^="ad_position_"], :root a[href^="https://www.dsct1.com/"], :root a[data-oburl^="https://paid.outbrain.com/network/redir?"], :root .icons-rss-feed + .icons-rss-feed div[class$="_item"], :root a[href^="http://aflrm.com/"], :root a[href^="http://affiliates.pinnaclesports.com/processing/"], :root a[href^="http://partner.sbaffiliates.com/"], :root a[href^="http://affiliate.coral.co.uk/processing/"], :root a[href^="http://aff.ironsocket.com/"], :root a[href^="http://adsrv.keycaptcha.com"], :root a[href^="https://zononi.com/"], :root a[href^="http://adserving.unibet.com/"], :root a[href^="https://secure.adnxs.com/clktrb?"], :root a[href^="http://adserver.adtechus.com/"], :root a[href^="http://adserver.adreactor.com/"], :root a[href^="http://www.yourfuckbook.com/?"], :root a[href^="//go.onclasrv.com/"], :root .GHOFUQ5BG2 > .GHOFUQ5BF2 > .GHOFUQ5BG5, :root a[href^="http://cwcams.com/landing/click/"], :root a[href^="http://ads.betfair.com/redirect.aspx?"], :root a[href^="http://ads.affbuzzads.com/"], :root a[href^="http://online.ladbrokes.com/promoRedirect?"], :root a[href^="http://go.trafficshop.com/"], :root a[href^="http://ads.ad-center.com/"], :root a[href^="https://horny-pussies.com/tds"], :root a[href^="http://adfarm.mediaplex.com/"], :root a[href^="http://ad.doubleclick.net/"], :root a[href^="https://k2s.cc/pr/"], :root a[href^="http://ad.au.doubleclick.net/"], :root a[href^="http://a63t9o1azf.com/"], :root a[href^="http://srvpub.com/"], :root a[href^="http://a.adquantix.com/"], :root a[href^="http://NowDownloadAll.com"], :root a[href^="http://adtrack123.pl/"], :root a[href^="http://9amq5z4y1y.com/"], :root a[href^="http://4c7og3qcob.com/"], :root a[href^="//go.vedohd.org/"], :root a[href^="http://www.ducksnetwork.com/"], :root a[href^="http://3wr110.net/"], :root a[href^="http://1phads.com/"], :root a[href^="//zenhppyad.com/"], :root #mn div[style="position:relative"] > #center_col > div > ._dPg, :root a[href^="http://www.myvpn.pro/"], :root a[href^="//www.pd-news.com/"], :root a[href^="//www.mgid.com/"], :root a[href^="http://lp.ncdownloader.com/"], :root a[href^="//pubads.g.doubleclick.net/"], :root #MAIN.ShowTopic > .ad, :root a[href^="https://porngames.adult/?SID="], :root a[href^="http://findersocket.com/"], :root ad-slot--header-banner, :root a[href^="https://m.do.co/c/"] > img, :root a[href^="http://connectlinking6.com/"], :root a[href^="https://spygasm.com/track?"], :root a[href^="http://cdn3.adexprts.com/"], :root #tads + div + .c, :root a[href^="//jsmptjmp.com/"], :root .ra[width="30%"][align="right"] + table[width="70%"][cellpadding="0"], :root a[href^="https://ilovemyfreedoms.com/"][href*="?affiliate_id="], :root a[href^="//healthaffiliate.center/"], :root [id*="ScriptRoot"], :root a[href^="//db52cc91beabf7e8.com/"], :root .plistaList > .plista_widget_underArticle_item[data-type="pet"], :root #center_col > #taw > #tvcap > .commercial-unit-desktop-top, :root a[href^="http://www.afgr2.com/"], :root #mn div[style="position:relative"] > #center_col > ._Ak, :root a[href^="https://www.oboom.com/ad/"], :root a[href^="//4f6b2af479d337cf.com/"], :root a[href^="http://fusionads.net"], :root a[href^="https://awejmp.com/"], :root a[href^=" http://www.sex.com/"][href*="&utm_"], :root .section-result[data-result-ad-type], :root a[href^=" http://ads.ad-center.com/"], :root .l-container > #fishtank, :root a[href^="https://fileboom.me/pr/"], :root a[href^="http://marketgid.com"], :root .GPMV2XEDA2 > .GPMV2XEDP1 > .GPMV2XEDJBB, :root a[href*="onclkds."], :root .trc_rbox_div .syndicatedItem, :root #ads > .dose > .dosesingle, :root .commercial-unit-mobile-top .jackpot-main-content-container > .UpgKEd + .nZZLFc > div > .vci, :root a[href*="delivery.trafficfabrik.com"], :root a[href*="=exoclick"], :root div[class^="backfill-taboola-home-slot-"], :root a[href*="=adscript"], :root #mn #center_col > div > h2.spon:first-child, :root a[href*="//bongacams5.com/track?"], :root FBS-AD, :root a[href*="5iclx7wa4q.com"], :root a[href^="https://www.adxtro.com/"], :root #center_col > #resultStats + #tads + #res + #tads, :root a[href*="//bongacams2.com/track?"], :root a[href^="http://www.drowle.com/"], :root a[href*=".udncoeln.com/"], :root a[href*=".qertewrt.com/"], :root a[target="_blank"][href^="http://api.taboola.com/"], :root a[href*=".smartadserver.com"], :root a[href^="http://track.incognitovpn.com/"], :root a[href*="//bongacams.com/track?"], :root a[data-oburl^="http://paid.outbrain.com/network/redir?"], :root a[href^="http://refpa.top/"], :root a[href*=".revimedia.com/"], :root .__ywvr .__y_item, :root a[href^="https://farm.plista.com/pets"], :root a[href*=".red90121.com/"], :root [href^="http://advertisesimple.info/"], :root a[href^="https://www.friendlyduck.com/AF_"], :root #center_col > #resultStats + div + #res + #tads, :root a[href^="//40ceexln7929.com/"], :root a[href^="https://playuhd.host/"], :root .mw > #rcnt > #center_col > #taw > #tvcap > .c, :root a[href*=".purple6401.com/"], :root a[href^="http://www.greenmangaming.com/?tap_a="], :root a[href*=".opskln.com/"], :root a[href*=".fwd28.com/"], :root [lazy-ad="leftbottom_banner"], :root p[id^="div-gpt-ad-"], :root a[href^="http://fsoft4down.com/"], :root a[href*="ad2upapp.com/"], :root a[href^="http://see-work.info/"], :root a[href*="/adrotate-out.php?"], :root #atvcap + #tvcap > .mnr-c > .commercial-unit-mobile-top, :root .inlineNewsletterSubscription + .inlineNewsletterSubscription div[class$="_item"], :root a[href*=".orange2258.com/"], :root #taw > .med + div > #tvcap > .mnr-c:not(.qs-ic) > .commercial-unit-mobile-top, :root .plista_widget_belowArticleRelaunch_item[data-type="pet"], :root div[id^="div_ad_stack_"], :root a[href*=".ichlnk.com/"], :root .mod > .gws-local-promotions__border, :root a[href^="http://data.committeemenencyclopedicrepertory.info/"], :root a[href*=".allsports4you.club"], :root a[href^="https://deliver.tf2www.com/"], :root a[href^="http://spygasm.com/track?"], :root .ob_dual_right > .ob_ads_header ~ .odb_div, :root a[href*=".adk2x.com/"], :root a[href^="http://duckcash.eu/"], :root a[href^="http://www.mobileandinternetadvertising.com/"], :root a[href^="http://www.downloadthesefiles.com/"], :root a[href^="http://secure.cbdpure.com/aff/"], :root .GB3L-QEDGY .GB3L-QEDF- > .GB3L-QEDE-, :root a[data-url^="http://paid.outbrain.com/network/redir?"] + .author, :root a[href^="http://liversely.net/"], :root iframe[id^="google_ads_frame"], :root a[href^="http://www.bluehost.com/track/"] > img, :root a[data-url^="http://paid.outbrain.com/network/redir?"], :root a[href^="http://play4k.co/"], :root a[data-redirect^="https://paid.outbrain.com/network/redir?"], :root a[href^="http://n.admagnet.net/"], :root a[href^="http://bestchickshere.com/"], :root a[href^="http://www.streamtunerhd.com/signup?"], :root #ssmiwdiv[jsdisplay], :root a[href^="//awejmp.com/"], :root a[href^="http://www.getyourguide.com/?partner_id="], :root [onclick^="window.open('https://www.brazzersnetwork.com/landing/"], :root a[href*=".adsrv.eacdn.com/"] > img, :root a[href^="http://mgid.com/"], :root a[href*="a2g-secure.com"], :root #resultspanel > #topads, :root a[href^="http://espn.zlbu.net/"], :root a[href^="http://k2s.cc/pr/"], :root a[href^="http://9nl.es/"], :root #assetsListings[style="display: block;"], :root [onclick^="window.open('window.open('//delivery.trafficfabrik.com/"], :root a[href^="http://adrunnr.com/"], :root [id*="MarketGid"], :root a[href^="https://servedbyadbutler.com/"], :root a[href^="https://mob1ledev1ces.com/"], :root [id^="adframe_wrap_"], :root div[data-mediatype="advertising"], :root a[href^="http://c.ketads.com/"], :root a[href^="http://6kup12tgxx.com/"], :root a[target="_blank"][onmousedown="this.href^='http://paid.outbrain.com/network/redir?"], :root a[href^="https://www.passeura.com/"], :root a[href^="http://www.pinkvisualpad.com/?revid="], :root div[id^="ads300_100-widget"], :root a[href^="https://www.brazzersnetwork.com/landing/"], :root #cnt #center_col > #taw > #tvcap > .c._oc._Lp, :root [href*="//xml.revrtb.com/"], :root a[href^="http://hd-plugins.com/download/"], :root a[href^="//voyeurhit.com/cs/"], :root a[href^="http://www.afgr3.com/"], :root [ad-id^="googlead"], :root a[href^="http://b.bestcompleteusa.info/"], :root .trc_rbox_div .syndicatedItemUB, :root .ra[align="left"][width="30%"], :root a[href^="https://trackjs.com/?utm_source"], :root AFS-AD, :root a[href^="http://adclick.g.doubleclick.net/"], :root #main-content > [style="padding:10px 0 0 0 !important;"], :root #center_col > #resultStats + div[style="border:1px solid #dedede;margin-bottom:11px;padding:5px 7px 5px 6px"], :root div[class^="lifeOnwerAd"], :root a[href$="/vghd.shtml"], :root a[href^="https://redirect.ero-advertising.com/"], :root a[href^="http://easydownload4you.com/"], :root a[href^="http://ffxitrack.com/"], :root #center_col > #main > .dfrd > .mnr-c > .c._oc._zs, :root a[href*=".clksite.com/"], :root a[href^="http://www.webtrackerplus.com/"], :root .GJJKPX2N1 > .GJJKPX2M1 > .GJJKPX2P4, :root #center_col > #taw > #tvcap > .cu-container > .commercial-unit-desktop-top, :root a[href^="http://centertrust.xyz/"], :root a[href^="https://intrev.co/"], :root .vi-lb-placeholder[title="ADVERTISEMENT"], :root a[href^="http://goldmoney.com/?gmrefcode="], :root a[href^="http://papi.mynativeplatform.com:80/pub2/"], :root LEADERBOARD-AD, :root #mn #center_col > div > h2.spon:first-child + ol:last-child, :root a[href^="http://servicegetbook.net/"], :root #rhs_block > #mbEnd, :root a[href^="http://cinema.friendscout24.de?"], :root [lazy-ad="lefttop_banner"], :root a[href^="http://www.mrskin.com/tour"], :root .jobs-information-call-to-action + .jobs-information-call-to-action div[class$="_item"], :root .gbfwa > div[class$="_item"], :root a[href^="https://www.incredimail.com/?id"], :root a[href^="http://api.content.ad/"], :root a[href^="http://adtransfer.net/"], :root .commercial-unit-desktop-rhs > .iKidV > .Ee92ae + .P2mpm + .hp3sk, :root a[href^="http://www.uniblue.com/cm/"], :root a[href^="http://landingpagegenius.com/"], :root a[data-redirect^="http://click.plista.com/pets"], :root #rhs_block > script + .c._oc._Ve.rhsvw, :root #\5f _mom_ad_12, :root .__zinit .__y_item, :root .ch[onclick="ga(this,event)"], :root .__ywl .__y_item, :root a[href^="http://track.trkvluum.com/"], :root a[href^="http://linksnappy.com/?ref="], :root [src^="/Redirect.a2b?"], :root a[href^="http://www.torntvdl.com/"], :root #center_col > #resultStats + #tads, :root .__yinit .__y_item, :root #center_col > div[style="font-size:14px;margin-right:0;min-height:5px"] > div[style="font-size:14px;margin:0 4px;padding:1px 5px;background:#fff8e7"], :root a[href^="http://track.affiliatenetwork.co.za/"], :root a[data-redirect^="http://paid.outbrain.com/network/redir?"], :root a[href^="https://secure.cbdpure.com/aff/"], :root AMP-AD, :root iframe[src*="mellowads.com"], :root .__y_inner > .__y_item, :root #cnt #center_col > #res > #topstuff > .ts, :root a[href^="https://landing.brazzersnetwork.com/"], :root .rc-cta[data-target], :root a[href*="//promo-bc.com/track?"], :root a[href^="http://www.firstclass-download.com/"], :root a[href*=".trust.zone"], :root a[href*="googleme.eu"], :root .GFYY1SVD2 > .GFYY1SVC2 > .GFYY1SVF5, :root div[class^="AdEmbeded__AddWrapper"], :root a[href^="http://affiliates.score-affiliates.com/"], :root #rhswrapper > #rhssection[border="0"][bgcolor="#ffffff"], :root .Mpopup + #Mad > #MadZone, :root #center_col > #\5f Emc, :root #rhs_block .mod > .luhb-div > div[data-async-type="updateHotelBookingModule"], :root div[class^="advertisement-desktop"], :root a[href^="http://ads2.williamhill.com/redirect.aspx?"], :root a[href^="https://www.spyoff.com/"], :root AD-TRIPLE-BOX, :root a[href^="http://www.menaon.com/installs/"], :root a[href^="http://taboola-"][href*="/redirect.php?app.type="], :root .mw > #rcnt > #center_col > #taw > .c, :root #rhs_block > .ts[cellspacing="0"][cellpadding="0"][style="padding:0"], :root a[href^="http://clickandjoinyourgirl.com/"], :root a[href^="https://ad13.adfarm1.adition.com/"], :root #header + #content > #left > #rlblock_left, :root a[href^="http://www.seekbang.com/cs/"], :root a[href^="http://syndication.exoclick.com/"], :root a[href^="http://bluehost.com/track/"], :root a[href^="https://squren.com/rotator/?atomid="], :root .nrelate .nr_partner, :root a[href^="//medleyads.com/spot/"], :root a[href*="mfroute.com/"], :root a[href^="//z6naousb.com/"], :root a[href^="http://t.mdn2015x1.com/"], :root #rhs_block > ol > .rhsvw > .kp-blk > .xpdopen > ._OKe > ol > ._DJe > .luhb-div, :root a[href^="http://tezfiles.com/pr/"], :root a[href^="http://t.wowtrk.com/"], :root #center_col > #taw > #tvcap > .rscontainer, :root div[id^="drudge-column-ads-"], :root a[href^="http://tour.mrskin.com/"], :root #main_col > #center_col div[style="font-size:14px;margin:0 4px;padding:1px 5px;background:#fff7ed"], :root a[href^="https://is.ltroute.com/"], :root a[href^="http://www.incredimail.com/?id"], :root a[href*="/servlet/click/zone?"], :root a[href^="http://ad-apac.doubleclick.net/"], :root a[data-nvp*="'trafficUrl':'https://paid.outbrain.com/network/redir?"], :root a[href^="http://webtrackerplus.com/"], :root div[itemtype="http://schema.org/WPAdBlock"], :root a[href^="https://www.nudeidols.com/cams/"], :root #center_col > #res > #topstuff + #search > div > #ires > #rso > #flun, :root a[href^="http://www.sex.com/pics/?utm_"], :root a[href^="http://vo2.qrlsx.com/"], :root a[href^="http://engine.newsmaxfeednetwork.com/"], :root a[href^="http://ad.yieldmanager.com/"], :root a[href^="http://www.plus500.com/?id="], :root #flowplayer > div[style="z-index: 208; position: absolute; width: 300px; height: 275px; left: 222.5px; top: 85px;"], :root a[href^="http://n217adserv.com/"], :root a[href^="//4c7og3qcob.com/"] { display: none !important; }</style></head>
<body bgcolor="#ffffff">
<div id="header">
<div id="headertop">
<div id="topmenu">
<a href="http://cdash.mitk.org/user.php">Login</a>
<a href="http://cdash.mitk.org/index.php">All Dashboards</a>
</div>
<div id="datetime">Thursday, April 02 2020 15:38:49</div>
<div id="feedicon" alt="RSS Feed" title="RSS Feed">
<a href="http://cdash.mitk.org/rss/SubmissionRSSMITK.xml">
<img src="./CDash _ MITK_files/feed-icon16x16.png" alt="RSS" width="14" height="14" border="0">
</a>
</div>
</div>
<div id="headerbottom">
<div id="headerlogo">
<a href="http://www.mitk.org/">
<img id="projectlogo" border="0" height="50px" alt="" src="./CDash _ MITK_files/displayImage.php">
</a>
</div>
<div id="headername">MITK<span id="subheadername"></span></div>
<div id="headermenu">
<ul id="navigation">
<li>
<a href="http://cdash.mitk.org/index.php?project=MITK&amp;date=">
Dashboard</a>
<ul>
<li>
<a href="http://cdash.mitk.org/viewChanges.php?project=MITK&amp;date=">Updates</a>
</li>
<li>
<a href="http://cdash.mitk.org/buildOverview.php?project=MITK&amp;date=">
Builds</a>
</li>
<li>
<a href="http://cdash.mitk.org/testOverview.php?project=MITK&amp;date=">
Tests</a>
</li>
<li>
<a href="http://cdash.mitk.org/queryTests.php?project=MITK&amp;date=&amp;limit=200">
Tests Query</a>
</li>
<li class="endsubmenu">
<a href="http://cdash.mitk.org/viewMap.php?project=MITK&amp;date=">
Sites</a>
</li>
</ul>
</li>
<li>
<a id="cal" href="http://cdash.mitk.org/viewCoverageFile.php?buildid=723463&amp;fileid=6219024#">Calendar</a>
<span id="date_now" style="display:none;"></span>
</li>
<li>
<a href="http://cdash.mitk.org/index.php?project=MITK&amp;date=2020-04-01">
Previous
</a>
</li>
<li>
<a href="http://cdash.mitk.org/index.php?project=MITK">
Current
</a>
</li>
<li>
<a href="http://cdash.mitk.org/index.php?project=MITK&amp;date=2020-04-03">
Next
</a>
</li>
<li>
<a href="http://cdash.mitk.org/viewCoverageFile.php?buildid=723463&amp;fileid=6219024#">Project</a>
<ul>
<li>
<a href="http://www.mitk.org/">Home</a>
</li>
<li>
<a href="http://docs.mitk.org/">Doxygen</a>
</li>
<li>
<a href="https://github.com/MITK/MITK">Repository</a>
</li>
<li>
<a href="http://phabricator.mitk.org/">Bug Tracker</a>
</li>
<li class="endsubmenu">
<a href="http://cdash.mitk.org/subscribeProject.php?projectid=1">Subscribe</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<input type="hidden" id="projectname" value="MITK">
<div id="calendar" class="ui-datepicker-calendar hasDatepicker"><div class="ui-datepicker-inline ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" style="display: block;"><div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all"><a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_1585834728981.datepicker._adjustDate(&#39;#calendar&#39;, -1, &#39;M&#39;);" title="Prev"><span class="ui-icon ui-icon-circle-triangle-w">Prev</span></a><a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="Next"><span class="ui-icon ui-icon-circle-triangle-e">Next</span></a><div class="ui-datepicker-title"><span class="ui-datepicker-month">April</span>&nbsp;<span class="ui-datepicker-year">2020</span></div></div><table class="ui-datepicker-calendar"><thead><tr><th class="ui-datepicker-week-end"><span title="Sunday">Su</span></th><th><span title="Monday">Mo</span></th><th><span title="Tuesday">Tu</span></th><th><span title="Wednesday">We</span></th><th><span title="Thursday">Th</span></th><th><span title="Friday">Fr</span></th><th class="ui-datepicker-week-end"><span title="Saturday">Sa</span></th></tr></thead><tbody><tr><td class=" ui-datepicker-week-end ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" " onclick="DP_jQuery_1585834728981.datepicker._selectDay(&#39;#calendar&#39;,3,2020, this);return false;"><a class="ui-state-default" href="http://cdash.mitk.org/viewCoverageFile.php?buildid=723463&amp;fileid=6219024#">1</a></td><td class=" ui-datepicker-days-cell-over ui-datepicker-current-day ui-datepicker-today" onclick="DP_jQuery_1585834728981.datepicker._selectDay(&#39;#calendar&#39;,3,2020, this);return false;"><a class="ui-state-default ui-state-highlight ui-state-active ui-state-hover" href="http://cdash.mitk.org/viewCoverageFile.php?buildid=723463&amp;fileid=6219024#">2</a></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">3</span></td><td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">4</span></td></tr><tr><td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">5</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">6</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">7</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">8</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">9</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">10</span></td><td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">11</span></td></tr><tr><td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">12</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">13</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">14</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">15</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">16</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">17</span></td><td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">18</span></td></tr><tr><td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">19</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">20</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">21</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">22</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">23</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">24</span></td><td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">25</span></td></tr><tr><td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">26</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">27</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">28</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">29</span></td><td class=" ui-datepicker-unselectable ui-state-disabled "><span class="ui-state-default">30</span></td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-week-end ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td></tr></tbody></table></div></div>
<br>
<table border="0">
<tbody><tr>
<td align="left"><b>Site: </b>E130-PC03</td>
</tr>
<tr>
<td align="left"><b>Build Name: </b>Linux-g++</td>
</tr>
<tr>
<td align="left"><b>Coverage File: </b>./Modules/ImageStatistics/mitkImageStatisticsCalculator.cpp</td>
</tr>
</tbody></table>
<hr>
<pre><span class="lineNum"> 1</span> | /*============================================================================<br><span class="lineNum"> 2</span> | <br><span class="lineNum"> 3</span> | The Medical Imaging Interaction Toolkit (MITK)<br><span class="lineNum"> 4</span> | <br><span class="lineNum"> 5</span> | Copyright (c) German Cancer Research Center (DKFZ)<br><span class="lineNum"> 6</span> | All rights reserved.<br><span class="lineNum"> 7</span> | <br><span class="lineNum"> 8</span> | Use of this source code is governed by a 3-clause BSD license that can be<br><span class="lineNum"> 9</span> | found in the LICENSE file.<br><span class="lineNum"> 10</span> | <br><span class="lineNum"> 11</span> | ============================================================================*/<br><span class="lineNum"> 12</span> | <br><span class="lineNum"> 13</span> | #include "mitkImageStatisticsCalculator.h"<br><span class="lineNum"> 14</span> | #include &lt;mitkExtendedLabelStatisticsImageFilter.h&gt;<br><span class="lineNum"> 15</span> | #include &lt;mitkExtendedStatisticsImageFilter.h&gt;<br><span class="lineNum"> 16</span> | #include &lt;mitkImage.h&gt;<br><span class="lineNum"> 17</span> | #include &lt;mitkImageAccessByItk.h&gt;<br><span class="lineNum"> 18</span> | #include &lt;mitkImageCast.h&gt;<br><span class="lineNum"> 19</span> | #include &lt;mitkImageStatisticsConstants.h&gt;<br><span class="lineNum"> 20</span> | #include &lt;mitkImageTimeSelector.h&gt;<br><span class="lineNum"> 21</span> | #include &lt;mitkImageToItk.h&gt;<br><span class="lineNum"> 22</span> | #include &lt;mitkMaskUtilities.h&gt;<br><span class="lineNum"> 23</span> | #include &lt;mitkMinMaxImageFilterWithIndex.h&gt;<br><span class="lineNum"> 24</span> | #include &lt;mitkMinMaxLabelmageFilterWithIndex.h&gt;<br><span class="lineNum"> 25</span> | #include &lt;mitkitkMaskImageFilter.h&gt;<br><span class="lineNum"> 26</span> | <br><span class="lineNum"> 27</span> | namespace mitk<br><span class="lineNum"> 28</span> | {<br><span class="lineNum"> 29</span><span class="lineCov"> 46 | void ImageStatisticsCalculator::SetInputImage(const mitk::Image *image)</span><br><span class="lineNum"> 30</span> | {<br><span class="lineNum"> 31</span><span class="lineCov"> 46 | if (image != m_Image)</span><br><span class="lineNum"> 32</span> | {<br><span class="lineNum"> 33</span><span class="lineCov"> 46 | m_Image = image;</span><br><span class="lineNum"> 34</span><span class="lineCov"> 46 | this-&gt;Modified();</span><br><span class="lineNum"> 35</span> | }<br><span class="lineNum"> 36</span><span class="lineCov"> 46 | }</span><br><span class="lineNum"> 37</span> | <br><span class="lineNum"> 38</span><span class="lineCov"> 30 | void ImageStatisticsCalculator::SetMask(mitk::MaskGenerator *mask)</span><br><span class="lineNum"> 39</span> | {<br><span class="lineNum"> 40</span><span class="lineCov"> 30 | if (mask != m_MaskGenerator)</span><br><span class="lineNum"> 41</span> | {<br><span class="lineNum"> 42</span><span class="lineCov"> 30 | m_MaskGenerator = mask;</span><br><span class="lineNum"> 43</span><span class="lineCov"> 30 | this-&gt;Modified();</span><br><span class="lineNum"> 44</span> | }<br><span class="lineNum"> 45</span><span class="lineCov"> 30 | }</span><br><span class="lineNum"> 46</span> | <br><span class="lineNum"> 47</span><span class="lineCov"> 24 | void ImageStatisticsCalculator::SetSecondaryMask(mitk::MaskGenerator *mask)</span><br><span class="lineNum"> 48</span> | {<br><span class="lineNum"> 49</span><span class="lineCov"> 24 | if (mask != m_SecondaryMaskGenerator)</span><br><span class="lineNum"> 50</span> | {<br><span class="lineNum"> 51</span><span class="lineCov"> 2 | m_SecondaryMaskGenerator = mask;</span><br><span class="lineNum"> 52</span><span class="lineCov"> 2 | this-&gt;Modified();</span><br><span class="lineNum"> 53</span> | }<br><span class="lineNum"> 54</span><span class="lineCov"> 24 | }</span><br><span class="lineNum"> 55</span> | <br><span class="lineNum"> 56</span><span class="lineCov"> 24 | void ImageStatisticsCalculator::SetNBinsForHistogramStatistics(unsigned int nBins)</span><br><span class="lineNum"> 57</span> | {<br><span class="lineNum"> 58</span><span class="lineCov"> 24 | if (nBins != m_nBinsForHistogramStatistics)</span><br><span class="lineNum"> 59</span> | {<br><span class="lineNum"> 60</span><span class="lineCov"> 4 | m_nBinsForHistogramStatistics = nBins;</span><br><span class="lineNum"> 61</span><span class="lineCov"> 4 | this-&gt;Modified();</span><br><span class="lineNum"> 62</span><span class="lineCov"> 4 | this-&gt;m_UseBinSizeOverNBins = false;</span><br><span class="lineNum"> 63</span> | }<br><span class="lineNum"> 64</span><span class="lineCov"> 24 | if (m_UseBinSizeOverNBins)</span><br><span class="lineNum"> 65</span> | {<br><span class="lineNum"> 66</span><span class="lineNoCov"> 0 | this-&gt;Modified();</span><br><span class="lineNum"> 67</span><span class="lineNoCov"> 0 | this-&gt;m_UseBinSizeOverNBins = false;</span><br><span class="lineNum"> 68</span> | }<br><span class="lineNum"> 69</span><span class="lineCov"> 24 | }</span><br><span class="lineNum"> 70</span> | <br><span class="lineNum"> 71</span><span class="lineNoCov"> 0 | unsigned int ImageStatisticsCalculator::GetNBinsForHistogramStatistics() const</span><br><span class="lineNum"> 72</span> | {<br><span class="lineNum"> 73</span><span class="lineNoCov"> 0 | return m_nBinsForHistogramStatistics;</span><br><span class="lineNum"> 74</span> | }<br><span class="lineNum"> 75</span> | <br><span class="lineNum"> 76</span><span class="lineNoCov"> 0 | void ImageStatisticsCalculator::SetBinSizeForHistogramStatistics(double binSize)</span><br><span class="lineNum"> 77</span> | {<br><span class="lineNum"> 78</span><span class="lineNoCov"> 0 | if (binSize != m_binSizeForHistogramStatistics)</span><br><span class="lineNum"> 79</span> | {<br><span class="lineNum"> 80</span><span class="lineNoCov"> 0 | m_binSizeForHistogramStatistics = binSize;</span><br><span class="lineNum"> 81</span><span class="lineNoCov"> 0 | this-&gt;Modified();</span><br><span class="lineNum"> 82</span><span class="lineNoCov"> 0 | this-&gt;m_UseBinSizeOverNBins = true;</span><br><span class="lineNum"> 83</span> | }<br><span class="lineNum"> 84</span><span class="lineNoCov"> 0 | if (!m_UseBinSizeOverNBins)</span><br><span class="lineNum"> 85</span> | {<br><span class="lineNum"> 86</span><span class="lineNoCov"> 0 | this-&gt;Modified();</span><br><span class="lineNum"> 87</span><span class="lineNoCov"> 0 | this-&gt;m_UseBinSizeOverNBins = true;</span><br><span class="lineNum"> 88</span> | }<br><span class="lineNum"> 89</span><span class="lineNoCov"> 0 | }</span><br><span class="lineNum"> 90</span> | <br><span class="lineNum"> 91</span><span class="lineNoCov"> 0 | double ImageStatisticsCalculator::GetBinSizeForHistogramStatistics() const { return m_binSizeForHistogramStatistics; }</span><br><span class="lineNum"> 92</span> | <br><span class="lineNum"> 93</span><span class="lineCov"> 70 | mitk::ImageStatisticsContainer* ImageStatisticsCalculator::GetStatistics(LabelIndex label)</span><br><span class="lineNum"> 94</span> | {<br><span class="lineNum"> 95</span><span class="lineCov"> 70 | if (m_Image.IsNull())</span><br><span class="lineNum"> 96</span> | {<br><span class="lineNum"> 97</span><span class="lineNoCov"> 0 | mitkThrow() &lt;&lt; "no image";</span><br><span class="lineNum"> 98</span> | }<br><span class="lineNum"> 99</span> | <br><span class="lineNum"> 100</span><span class="lineCov"> 70 | if (!m_Image-&gt;IsInitialized())</span><br><span class="lineNum"> 101</span> | {<br><span class="lineNum"> 102</span><span class="lineNoCov"> 0 | mitkThrow() &lt;&lt; "Image not initialized!";</span><br><span class="lineNum"> 103</span> | }<br><span class="lineNum"> 104</span> | <br><span class="lineNum"> 105</span><span class="lineCov"> 70 | if (IsUpdateRequired(label))</span><br><span class="lineNum"> 106</span> | {<br><span class="lineNum"> 107</span><span class="lineCov"> 46 | auto timeGeometry = m_Image-&gt;GetTimeGeometry();</span><br><span class="lineNum"> 108</span> | // always compute statistics on all timesteps<br><span class="lineNum"> 109</span><span class="lineCov"> 92 | for (unsigned int timeStep = 0; timeStep &lt; m_Image-&gt;GetTimeSteps(); timeStep++)</span><br><span class="lineNum"> 110</span> | {<br><span class="lineNum"> 111</span><span class="lineCov"> 46 | if (m_MaskGenerator.IsNotNull())</span><br><span class="lineNum"> 112</span> | {<br><span class="lineNum"> 113</span><span class="lineCov"> 30 | m_MaskGenerator-&gt;SetTimeStep(timeStep);</span><br><span class="lineNum"> 114</span> | //See T25625: otherwise, the mask is not computed again after setting a different time step<br><span class="lineNum"> 115</span><span class="lineCov"> 30 | m_MaskGenerator-&gt;Modified();</span><br><span class="lineNum"> 116</span><span class="lineCov"> 30 | m_InternalMask = m_MaskGenerator-&gt;GetMask();</span><br><span class="lineNum"> 117</span><span class="lineCov"> 30 | if (m_MaskGenerator-&gt;GetReferenceImage().IsNotNull())</span><br><span class="lineNum"> 118</span> | {<br><span class="lineNum"> 119</span><span class="lineCov"> 25 | m_InternalImageForStatistics = m_MaskGenerator-&gt;GetReferenceImage();</span><br><span class="lineNum"> 120</span> | }<br><span class="lineNum"> 121</span> | else<br><span class="lineNum"> 122</span> | {<br><span class="lineNum"> 123</span><span class="lineCov"> 5 | m_InternalImageForStatistics = m_Image;</span><br><span class="lineNum"> 124</span> | }<br><span class="lineNum"> 125</span> | }<br><span class="lineNum"> 126</span> | else<br><span class="lineNum"> 127</span> | {<br><span class="lineNum"> 128</span><span class="lineCov"> 16 | m_InternalImageForStatistics = m_Image;</span><br><span class="lineNum"> 129</span> | }<br><span class="lineNum"> 130</span> | <br><span class="lineNum"> 131</span><span class="lineCov"> 46 | if (m_SecondaryMaskGenerator.IsNotNull())</span><br><span class="lineNum"> 132</span> | {<br><span class="lineNum"> 133</span><span class="lineCov"> 2 | m_SecondaryMaskGenerator-&gt;SetTimeStep(timeStep);</span><br><span class="lineNum"> 134</span><span class="lineCov"> 2 | m_SecondaryMask = m_SecondaryMaskGenerator-&gt;GetMask();</span><br><span class="lineNum"> 135</span> | }<br><span class="lineNum"> 136</span> | <br><span class="lineNum"> 137</span><span class="lineCov"> 92 | ImageTimeSelector::Pointer imgTimeSel = ImageTimeSelector::New();</span><br><span class="lineNum"> 138</span><span class="lineCov"> 46 | imgTimeSel-&gt;SetInput(m_InternalImageForStatistics);</span><br><span class="lineNum"> 139</span><span class="lineCov"> 46 | imgTimeSel-&gt;SetTimeNr(timeStep);</span><br><span class="lineNum"> 140</span><span class="lineCov"> 46 | imgTimeSel-&gt;UpdateLargestPossibleRegion();</span><br><span class="lineNum"> 141</span><span class="lineCov"> 46 | imgTimeSel-&gt;Update();</span><br><span class="lineNum"> 142</span><span class="lineCov"> 46 | m_ImageTimeSlice = imgTimeSel-&gt;GetOutput();</span><br><span class="lineNum"> 143</span> | <br><span class="lineNum"> 144</span> | // Calculate statistics with/without mask<br><span class="lineNum"> 145</span><span class="lineCov"> 46 | if (m_MaskGenerator.IsNull() &amp;&amp; m_SecondaryMaskGenerator.IsNull())</span><br><span class="lineNum"> 146</span> | {<br><span class="lineNum"> 147</span> | // 1) calculate statistics unmasked:<br><span class="lineNum"> 148</span><span class="lineCov"> 14 | AccessByItk_2(m_ImageTimeSlice, InternalCalculateStatisticsUnmasked, timeGeometry, timeStep)</span><br><span class="lineNum"> 149</span> | }<br><span class="lineNum"> 150</span> | else<br><span class="lineNum"> 151</span> | {<br><span class="lineNum"> 152</span> | // 2) calculate statistics masked<br><span class="lineNum"> 153</span><span class="lineCov"> 32 | AccessByItk_2(m_ImageTimeSlice, InternalCalculateStatisticsMasked, timeGeometry, timeStep)</span><br><span class="lineNum"> 154</span> | }<br><span class="lineNum"> 155</span> | }<br><span class="lineNum"> 156</span> | }<br><span class="lineNum"> 157</span> | <br><span class="lineNum"> 158</span><span class="lineCov"> 70 | auto it = m_StatisticContainers.find(label);</span><br><span class="lineNum"> 159</span><span class="lineCov"> 70 | if (it != m_StatisticContainers.end())</span><br><span class="lineNum"> 160</span> | {<br><span class="lineNum"> 161</span><span class="lineCov"> 70 | return (it-&gt;second).GetPointer();</span><br><span class="lineNum"> 162</span> | }<br><span class="lineNum"> 163</span> | else<br><span class="lineNum"> 164</span> | {<br><span class="lineNum"> 165</span><span class="lineNoCov"> 0 | mitkThrow() &lt;&lt; "unknown label";</span><br><span class="lineNum"> 166</span> | return nullptr;<br><span class="lineNum"> 167</span> | }<br><span class="lineNum"> 168</span> | }<br><span class="lineNum"> 169</span> | <br><span class="lineNum"> 170</span> | template &lt;typename TPixel, unsigned int VImageDimension&gt;<br><span class="lineNum"> 171</span><span class="lineCov"> 28 | void ImageStatisticsCalculator::InternalCalculateStatisticsUnmasked(</span><br><span class="lineNum"> 172</span> | typename itk::Image&lt;TPixel, VImageDimension&gt; *image, const TimeGeometry *timeGeometry, TimeStepType timeStep)<br><span class="lineNum"> 173</span> | {<br><span class="lineNum"> 174</span> | typedef typename itk::Image&lt;TPixel, VImageDimension&gt; ImageType;<br><span class="lineNum"> 175</span> | typedef typename itk::ExtendedStatisticsImageFilter&lt;ImageType&gt; ImageStatisticsFilterType;<br><span class="lineNum"> 176</span> | typedef typename itk::MinMaxImageFilterWithIndex&lt;ImageType&gt; MinMaxFilterType;<br><span class="lineNum"> 177</span> | <br><span class="lineNum"> 178</span> | // reset statistics container if exists<br><span class="lineNum"> 179</span><span class="lineCov"> 56 | ImageStatisticsContainer::Pointer statisticContainerForImage;</span><br><span class="lineNum"> 180</span><span class="lineCov"> 28 | LabelIndex labelNoMask = 1;</span><br><span class="lineNum"> 181</span><span class="lineCov"> 28 | auto it = m_StatisticContainers.find(labelNoMask);</span><br><span class="lineNum"> 182</span><span class="lineCov"> 28 | if (it != m_StatisticContainers.end())</span><br><span class="lineNum"> 183</span> | {<br><span class="lineNum"> 184</span><span class="lineNoCov"> 0 | statisticContainerForImage = it-&gt;second;</span><br><span class="lineNum"> 185</span> | }<br><span class="lineNum"> 186</span> | else<br><span class="lineNum"> 187</span> | {<br><span class="lineNum"> 188</span><span class="lineCov"> 28 | statisticContainerForImage = ImageStatisticsContainer::New();</span><br><span class="lineNum"> 189</span><span class="lineCov"> 28 | statisticContainerForImage-&gt;SetTimeGeometry(const_cast&lt;mitk::TimeGeometry*&gt;(timeGeometry));</span><br><span class="lineNum"> 190</span><span class="lineCov"> 28 | m_StatisticContainers.emplace(labelNoMask, statisticContainerForImage);</span><br><span class="lineNum"> 191</span> | }<br><span class="lineNum"> 192</span> | <br><span class="lineNum"> 193</span><span class="lineCov"> 56 | auto statObj = ImageStatisticsContainer::ImageStatisticsObject();</span><br><span class="lineNum"> 194</span> | <br><span class="lineNum"> 195</span><span class="lineCov"> 56 | typename ImageStatisticsFilterType::Pointer statisticsFilter = ImageStatisticsFilterType::New();</span><br><span class="lineNum"> 196</span><span class="lineCov"> 28 | statisticsFilter-&gt;SetInput(image);</span><br><span class="lineNum"> 197</span><span class="lineCov"> 28 | statisticsFilter-&gt;SetCoordinateTolerance(0.001);</span><br><span class="lineNum"> 198</span><span class="lineCov"> 28 | statisticsFilter-&gt;SetDirectionTolerance(0.001);</span><br><span class="lineNum"> 199</span> | <br><span class="lineNum"> 200</span> | // TODO: this is single threaded. Implement our own image filter that does this multi threaded<br><span class="lineNum"> 201</span> | // typename itk::MinimumMaximumImageCalculator&lt;ImageType&gt;::Pointer imgMinMaxFilter =<br><span class="lineNum"> 202</span> | // itk::MinimumMaximumImageCalculator&lt;ImageType&gt;::New(); imgMinMaxFilter-&gt;SetImage(image);<br><span class="lineNum"> 203</span> | // imgMinMaxFilter-&gt;Compute();<br><span class="lineNum"> 204</span><span class="lineCov"> 56 | vnl_vector&lt;int&gt; minIndex, maxIndex;</span><br><span class="lineNum"> 205</span> | <br><span class="lineNum"> 206</span><span class="lineCov"> 28 | typename MinMaxFilterType::Pointer minMaxFilter = MinMaxFilterType::New();</span><br><span class="lineNum"> 207</span><span class="lineCov"> 28 | minMaxFilter-&gt;SetInput(image);</span><br><span class="lineNum"> 208</span><span class="lineCov"> 28 | minMaxFilter-&gt;UpdateLargestPossibleRegion();</span><br><span class="lineNum"> 209</span><span class="lineCov"> 28 | typename ImageType::PixelType minval = minMaxFilter-&gt;GetMin();</span><br><span class="lineNum"> 210</span><span class="lineCov"> 28 | typename ImageType::PixelType maxval = minMaxFilter-&gt;GetMax();</span><br><span class="lineNum"> 211</span> | <br><span class="lineNum"> 212</span><span class="lineCov"> 28 | typename ImageType::IndexType tmpMinIndex = minMaxFilter-&gt;GetMinIndex();</span><br><span class="lineNum"> 213</span><span class="lineCov"> 28 | typename ImageType::IndexType tmpMaxIndex = minMaxFilter-&gt;GetMaxIndex();</span><br><span class="lineNum"> 214</span> | <br><span class="lineNum"> 215</span> | // typename ImageType::IndexType tmpMinIndex = imgMinMaxFilter-&gt;GetIndexOfMinimum();<br><span class="lineNum"> 216</span> | // typename ImageType::IndexType tmpMaxIndex = imgMinMaxFilter-&gt;GetIndexOfMaximum();<br><span class="lineNum"> 217</span> | <br><span class="lineNum"> 218</span><span class="lineCov"> 28 | minIndex.set_size(tmpMaxIndex.GetIndexDimension());</span><br><span class="lineNum"> 219</span><span class="lineCov"> 28 | maxIndex.set_size(tmpMaxIndex.GetIndexDimension());</span><br><span class="lineNum"> 220</span> | <br><span class="lineNum"> 221</span><span class="lineCov"> 112 | for (unsigned int i = 0; i &lt; tmpMaxIndex.GetIndexDimension(); i++)</span><br><span class="lineNum"> 222</span> | {<br><span class="lineNum"> 223</span><span class="lineCov"> 84 | minIndex[i] = tmpMinIndex[i];</span><br><span class="lineNum"> 224</span><span class="lineCov"> 84 | maxIndex[i] = tmpMaxIndex[i];</span><br><span class="lineNum"> 225</span> | }<br><span class="lineNum"> 226</span> | <br><span class="lineNum"> 227</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MINIMUMPOSITION(), minIndex);</span><br><span class="lineNum"> 228</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MAXIMUMPOSITION(), maxIndex);</span><br><span class="lineNum"> 229</span> | <br><span class="lineNum"> 230</span> | // convert m_binSize in m_nBins if necessary<br><span class="lineNum"> 231</span> | unsigned int nBinsForHistogram;<br><span class="lineNum"> 232</span><span class="lineCov"> 28 | if (m_UseBinSizeOverNBins)</span><br><span class="lineNum"> 233</span> | {<br><span class="lineNum"> 234</span><span class="lineNoCov"> 0 | nBinsForHistogram = std::max(static_cast&lt;double&gt;(std::ceil(maxval - minval)) / m_binSizeForHistogramStatistics,</span><br><span class="lineNum"> 235</span><span class="lineNoCov"> 0 | 10.); // do not allow less than 10 bins</span><br><span class="lineNum"> 236</span> | }<br><span class="lineNum"> 237</span> | else<br><span class="lineNum"> 238</span> | {<br><span class="lineNum"> 239</span><span class="lineCov"> 28 | nBinsForHistogram = m_nBinsForHistogramStatistics;</span><br><span class="lineNum"> 240</span> | }<br><span class="lineNum"> 241</span> | <br><span class="lineNum"> 242</span><span class="lineCov"> 28 | statisticsFilter-&gt;SetHistogramParameters(nBinsForHistogram, minval, maxval);</span><br><span class="lineNum"> 243</span> | <br><span class="lineNum"> 244</span> | try<br><span class="lineNum"> 245</span> | {<br><span class="lineNum"> 246</span><span class="lineCov"> 28 | statisticsFilter-&gt;Update();</span><br><span class="lineNum"> 247</span> | }<br><span class="lineNum"> 248</span> | catch (const itk::ExceptionObject &amp;e)<br><span class="lineNum"> 249</span> | {<br><span class="lineNum"> 250</span> | mitkThrow() &lt;&lt; "Image statistics calculation failed due to following ITK Exception: \n " &lt;&lt; e.what();<br><span class="lineNum"> 251</span> | }<br><span class="lineNum"> 252</span> | <br><span class="lineNum"> 253</span><span class="lineCov"> 28 | auto voxelVolume = GetVoxelVolume&lt;TPixel, VImageDimension&gt;(image);</span><br><span class="lineNum"> 254</span> | <br><span class="lineNum"> 255</span><span class="lineCov"> 28 | auto numberOfPixels = image-&gt;GetLargestPossibleRegion().GetNumberOfPixels();</span><br><span class="lineNum"> 256</span><span class="lineCov"> 28 | auto volume = static_cast&lt;double&gt;(numberOfPixels) * voxelVolume;</span><br><span class="lineNum"> 257</span><span class="lineCov"> 28 | auto variance = statisticsFilter-&gt;GetSigma() * statisticsFilter-&gt;GetSigma();</span><br><span class="lineNum"> 258</span><span class="lineCov"> 28 | auto rms =</span><br><span class="lineNum"> 259</span><span class="lineCov"> 28 | std::sqrt(std::pow(statisticsFilter-&gt;GetMean(), 2.) + statisticsFilter-&gt;GetVariance()); // variance = sigma^2</span><br><span class="lineNum"> 260</span> | <br><span class="lineNum"> 261</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::NUMBEROFVOXELS(),</span><br><span class="lineNum"> 262</span> | static_cast&lt;ImageStatisticsContainer::VoxelCountType&gt;(numberOfPixels));<br><span class="lineNum"> 263</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::VOLUME(), volume);</span><br><span class="lineNum"> 264</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MEAN(), statisticsFilter-&gt;GetMean());</span><br><span class="lineNum"> 265</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MINIMUM(),</span><br><span class="lineNum"> 266</span><span class="lineCov"> 28 | static_cast&lt;ImageStatisticsContainer::RealType&gt;(statisticsFilter-&gt;GetMinimum()));</span><br><span class="lineNum"> 267</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MAXIMUM(),</span><br><span class="lineNum"> 268</span><span class="lineCov"> 28 | static_cast&lt;ImageStatisticsContainer::RealType&gt;(statisticsFilter-&gt;GetMaximum()));</span><br><span class="lineNum"> 269</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::STANDARDDEVIATION(), statisticsFilter-&gt;GetSigma());</span><br><span class="lineNum"> 270</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::VARIANCE(), variance);</span><br><span class="lineNum"> 271</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::SKEWNESS(), statisticsFilter-&gt;GetSkewness());</span><br><span class="lineNum"> 272</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::KURTOSIS(), statisticsFilter-&gt;GetKurtosis());</span><br><span class="lineNum"> 273</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::RMS(), rms);</span><br><span class="lineNum"> 274</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MPP(), statisticsFilter-&gt;GetMPP());</span><br><span class="lineNum"> 275</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::ENTROPY(), statisticsFilter-&gt;GetEntropy());</span><br><span class="lineNum"> 276</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MEDIAN(), statisticsFilter-&gt;GetMedian());</span><br><span class="lineNum"> 277</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::UNIFORMITY(), statisticsFilter-&gt;GetUniformity());</span><br><span class="lineNum"> 278</span><span class="lineCov"> 28 | statObj.AddStatistic(mitk::ImageStatisticsConstants::UPP(), statisticsFilter-&gt;GetUPP());</span><br><span class="lineNum"> 279</span><span class="lineCov"> 28 | statObj.m_Histogram = statisticsFilter-&gt;GetHistogram().GetPointer();</span><br><span class="lineNum"> 280</span><span class="lineCov"> 28 | statisticContainerForImage-&gt;SetStatisticsForTimeStep(timeStep, statObj);</span><br><span class="lineNum"> 281</span><span class="lineCov"> 28 | }</span><br><span class="lineNum"> 282</span> | <br><span class="lineNum"> 283</span> | template &lt;typename TPixel, unsigned int VImageDimension&gt;<br><span class="lineNum"> 284</span><span class="lineCov"> 152 | double ImageStatisticsCalculator::GetVoxelVolume(typename itk::Image&lt;TPixel, VImageDimension&gt; *image) const</span><br><span class="lineNum"> 285</span> | {<br><span class="lineNum"> 286</span><span class="lineCov"> 152 | auto spacing = image-&gt;GetSpacing();</span><br><span class="lineNum"> 287</span><span class="lineCov"> 152 | double voxelVolume = 1.;</span><br><span class="lineNum"> 288</span><span class="lineCov"> 580 | for (unsigned int i = 0; i &lt; image-&gt;GetImageDimension(); i++)</span><br><span class="lineNum"> 289</span> | {<br><span class="lineNum"> 290</span><span class="lineCov"> 428 | voxelVolume *= spacing[i];</span><br><span class="lineNum"> 291</span> | }<br><span class="lineNum"> 292</span><span class="lineCov"> 152 | return voxelVolume;</span><br><span class="lineNum"> 293</span> | }<br><span class="lineNum"> 294</span> | <br><span class="lineNum"> 295</span> | template &lt;typename TPixel, unsigned int VImageDimension&gt;<br><span class="lineNum"> 296</span><span class="lineCov"> 64 | void ImageStatisticsCalculator::InternalCalculateStatisticsMasked(typename itk::Image&lt;TPixel, VImageDimension&gt; *image,</span><br><span class="lineNum"> 297</span> | const TimeGeometry *timeGeometry,<br><span class="lineNum"> 298</span> | unsigned int timeStep)<br><span class="lineNum"> 299</span> | {<br><span class="lineNum"> 300</span> | typedef itk::Image&lt;TPixel, VImageDimension&gt; ImageType;<br><span class="lineNum"> 301</span> | typedef itk::Image&lt;MaskPixelType, VImageDimension&gt; MaskType;<br><span class="lineNum"> 302</span> | typedef typename MaskType::PixelType LabelPixelType;<br><span class="lineNum"> 303</span> | typedef itk::ExtendedLabelStatisticsImageFilter&lt;ImageType, MaskType&gt; ImageStatisticsFilterType;<br><span class="lineNum"> 304</span> | typedef MaskUtilities&lt;TPixel, VImageDimension&gt; MaskUtilType;<br><span class="lineNum"> 305</span> | typedef typename itk::MinMaxLabelImageFilterWithIndex&lt;ImageType, MaskType&gt; MinMaxLabelFilterType;<br><span class="lineNum"> 306</span> | typedef typename ImageType::PixelType InputImgPixelType;<br><span class="lineNum"> 307</span> | <br><span class="lineNum"> 308</span> | // workaround: if m_SecondaryMaskGenerator ist not null but m_MaskGenerator is! (this is the case if we request a<br><span class="lineNum"> 309</span> | // 'ignore zuero valued pixels' mask in the gui but do not define a primary mask)<br><span class="lineNum"> 310</span><span class="lineCov"> 64 | bool swapMasks = false;</span><br><span class="lineNum"> 311</span><span class="lineCov"> 64 | if (m_SecondaryMask.IsNotNull() &amp;&amp; m_InternalMask.IsNull())</span><br><span class="lineNum"> 312</span> | {<br><span class="lineNum"> 313</span><span class="lineCov"> 4 | m_InternalMask = m_SecondaryMask;</span><br><span class="lineNum"> 314</span><span class="lineCov"> 4 | m_SecondaryMask = nullptr;</span><br><span class="lineNum"> 315</span><span class="lineCov"> 4 | swapMasks = true;</span><br><span class="lineNum"> 316</span> | }<br><span class="lineNum"> 317</span> | <br><span class="lineNum"> 318</span> | // maskImage has to have the same dimension as image<br><span class="lineNum"> 319</span><span class="lineCov"> 128 | typename MaskType::Pointer maskImage = MaskType::New();</span><br><span class="lineNum"> 320</span> | try<br><span class="lineNum"> 321</span> | {<br><span class="lineNum"> 322</span> | // try to access the pixel values directly (no copying or casting). Only works if mask pixels are of pixelType<br><span class="lineNum"> 323</span> | // unsigned short<br><span class="lineNum"> 324</span><span class="lineCov"> 64 | maskImage = ImageToItkImage&lt;MaskPixelType, VImageDimension&gt;(m_InternalMask);</span><br><span class="lineNum"> 325</span> | }<br><span class="lineNum"> 326</span> | catch (const itk::ExceptionObject &amp;)<br><span class="lineNum"> 327</span> | <br><span class="lineNum"> 328</span> | {<br><span class="lineNum"> 329</span> | // if the pixel type of the mask is not short, then we have to make a copy of m_InternalMask (and cast the values)<br><span class="lineNum"> 330</span> | CastToItkImage(m_InternalMask, maskImage);<br><span class="lineNum"> 331</span> | }<br><span class="lineNum"> 332</span> | <br><span class="lineNum"> 333</span> | // if we have a secondary mask (say a ignoreZeroPixelMask) we need to combine the masks (corresponds to AND)<br><span class="lineNum"> 334</span><span class="lineCov"> 64 | if (m_SecondaryMask.IsNotNull())</span><br><span class="lineNum"> 335</span> | {<br><span class="lineNum"> 336</span> | // dirty workaround for a bug when pf mask + any other mask is used in conjunction. We need a proper fix for this<br><span class="lineNum"> 337</span> | // (Fabian Isensee is responsible and probably working on it!)<br><span class="lineNum"> 338</span><span class="lineNoCov"> 0 | if (m_InternalMask-&gt;GetDimension() == 2 &amp;&amp;</span><br><span class="lineNum"> 339</span><span class="lineNoCov"> 0 | (m_SecondaryMask-&gt;GetDimension() == 3 || m_SecondaryMask-&gt;GetDimension() == 4))</span><br><span class="lineNum"> 340</span> | {<br><span class="lineNum"> 341</span><span class="lineNoCov"> 0 | mitk::Image::ConstPointer old_img = m_SecondaryMaskGenerator-&gt;GetReferenceImage();</span><br><span class="lineNum"> 342</span><span class="lineNoCov"> 0 | m_SecondaryMaskGenerator-&gt;SetInputImage(m_MaskGenerator-&gt;GetReferenceImage());</span><br><span class="lineNum"> 343</span><span class="lineNoCov"> 0 | m_SecondaryMask = m_SecondaryMaskGenerator-&gt;GetMask();</span><br><span class="lineNum"> 344</span><span class="lineNoCov"> 0 | m_SecondaryMaskGenerator-&gt;SetInputImage(old_img);</span><br><span class="lineNum"> 345</span> | }<br><span class="lineNum"> 346</span><span class="lineNoCov"> 0 | typename MaskType::Pointer secondaryMaskImage = MaskType::New();</span><br><span class="lineNum"> 347</span><span class="lineNoCov"> 0 | secondaryMaskImage = ImageToItkImage&lt;MaskPixelType, VImageDimension&gt;(m_SecondaryMask);</span><br><span class="lineNum"> 348</span> | <br><span class="lineNum"> 349</span> | // secondary mask should be a ignore zero value pixel mask derived from image. it has to be cropped to the mask<br><span class="lineNum"> 350</span> | // region (which may be planar or simply smaller)<br><span class="lineNum"> 351</span><span class="lineNoCov"> 0 | typename MaskUtilities&lt;MaskPixelType, VImageDimension&gt;::Pointer secondaryMaskMaskUtil =</span><br><span class="lineNum"> 352</span> | MaskUtilities&lt;MaskPixelType, VImageDimension&gt;::New();<br><span class="lineNum"> 353</span><span class="lineNoCov"> 0 | secondaryMaskMaskUtil-&gt;SetImage(secondaryMaskImage.GetPointer());</span><br><span class="lineNum"> 354</span><span class="lineNoCov"> 0 | secondaryMaskMaskUtil-&gt;SetMask(maskImage.GetPointer());</span><br><span class="lineNum"> 355</span><span class="lineNoCov"> 0 | typename MaskType::Pointer adaptedSecondaryMaskImage = secondaryMaskMaskUtil-&gt;ExtractMaskImageRegion();</span><br><span class="lineNum"> 356</span> | <br><span class="lineNum"> 357</span><span class="lineNoCov"> 0 | typename itk::MaskImageFilter2&lt;MaskType, MaskType, MaskType&gt;::Pointer maskFilter =</span><br><span class="lineNum"> 358</span> | itk::MaskImageFilter2&lt;MaskType, MaskType, MaskType&gt;::New();<br><span class="lineNum"> 359</span><span class="lineNoCov"> 0 | maskFilter-&gt;SetInput1(maskImage);</span><br><span class="lineNum"> 360</span><span class="lineNoCov"> 0 | maskFilter-&gt;SetInput2(adaptedSecondaryMaskImage);</span><br><span class="lineNum"> 361</span><span class="lineNoCov"> 0 | maskFilter-&gt;SetMaskingValue(</span><br><span class="lineNum"> 362</span><span class="lineNoCov"> 0 | 1); // all pixels of maskImage where secondaryMaskImage==1 will be kept, all the others are set to 0</span><br><span class="lineNum"> 363</span><span class="lineNoCov"> 0 | maskFilter-&gt;UpdateLargestPossibleRegion();</span><br><span class="lineNum"> 364</span><span class="lineNoCov"> 0 | maskImage = maskFilter-&gt;GetOutput();</span><br><span class="lineNum"> 365</span> | }<br><span class="lineNum"> 366</span> | <br><span class="lineNum"> 367</span><span class="lineCov"> 128 | typename MaskUtilType::Pointer maskUtil = MaskUtilType::New();</span><br><span class="lineNum"> 368</span><span class="lineCov"> 64 | maskUtil-&gt;SetImage(image);</span><br><span class="lineNum"> 369</span><span class="lineCov"> 64 | maskUtil-&gt;SetMask(maskImage.GetPointer());</span><br><span class="lineNum"> 370</span> | <br><span class="lineNum"> 371</span> | // if mask is smaller than image, extract the image region where the mask is<br><span class="lineNum"> 372</span><span class="lineCov"> 128 | typename ImageType::Pointer adaptedImage = ImageType::New();</span><br><span class="lineNum"> 373</span> | <br><span class="lineNum"> 374</span><span class="lineCov"> 64 | adaptedImage = maskUtil-&gt;ExtractMaskImageRegion(); // this also checks mask sanity</span><br><span class="lineNum"> 375</span> | <br><span class="lineNum"> 376</span> | // find min, max, minindex and maxindex<br><span class="lineNum"> 377</span><span class="lineCov"> 128 | typename MinMaxLabelFilterType::Pointer minMaxFilter = MinMaxLabelFilterType::New();</span><br><span class="lineNum"> 378</span><span class="lineCov"> 64 | minMaxFilter-&gt;SetInput(adaptedImage);</span><br><span class="lineNum"> 379</span><span class="lineCov"> 64 | minMaxFilter-&gt;SetLabelInput(maskImage);</span><br><span class="lineNum"> 380</span><span class="lineCov"> 64 | minMaxFilter-&gt;UpdateLargestPossibleRegion();</span><br><span class="lineNum"> 381</span> | <br><span class="lineNum"> 382</span> | // set histogram parameters for each label individually (min/max may be different for each label)<br><span class="lineNum"> 383</span> | typedef typename std::map&lt;LabelPixelType, InputImgPixelType&gt; MapType;<br><span class="lineNum"> 384</span> | typedef typename std::pair&lt;LabelPixelType, InputImgPixelType&gt; PairType;<br><span class="lineNum"> 385</span> | <br><span class="lineNum"> 386</span><span class="lineCov"> 128 | std::vector&lt;LabelPixelType&gt; relevantLabels = minMaxFilter-&gt;GetRelevantLabels();</span><br><span class="lineNum"> 387</span><span class="lineCov"> 128 | MapType minVals;</span><br><span class="lineNum"> 388</span><span class="lineCov"> 128 | MapType maxVals;</span><br><span class="lineNum"> 389</span><span class="lineCov"> 128 | std::map&lt;LabelPixelType, unsigned int&gt; nBins;</span><br><span class="lineNum"> 390</span> | <br><span class="lineNum"> 391</span><span class="lineCov"> 188 | for (LabelPixelType label : relevantLabels)</span><br><span class="lineNum"> 392</span> | {<br><span class="lineNum"> 393</span><span class="lineCov"> 124 | minVals.insert(PairType(label, minMaxFilter-&gt;GetMin(label)));</span><br><span class="lineNum"> 394</span><span class="lineCov"> 124 | maxVals.insert(PairType(label, minMaxFilter-&gt;GetMax(label)));</span><br><span class="lineNum"> 395</span> | <br><span class="lineNum"> 396</span> | unsigned int nBinsForHistogram;<br><span class="lineNum"> 397</span><span class="lineCov"> 124 | if (m_UseBinSizeOverNBins)</span><br><span class="lineNum"> 398</span> | {<br><span class="lineNum"> 399</span><span class="lineNoCov"> 0 | nBinsForHistogram =</span><br><span class="lineNum"> 400</span><span class="lineNoCov"> 0 | std::max(static_cast&lt;double&gt;(std::ceil(minMaxFilter-&gt;GetMax(label) - minMaxFilter-&gt;GetMin(label))) /</span><br><span class="lineNum"> 401</span><span class="lineNoCov"> 0 | m_binSizeForHistogramStatistics,</span><br><span class="lineNum"> 402</span><span class="lineNoCov"> 0 | 10.); // do not allow less than 10 bins</span><br><span class="lineNum"> 403</span> | }<br><span class="lineNum"> 404</span> | else<br><span class="lineNum"> 405</span> | {<br><span class="lineNum"> 406</span><span class="lineCov"> 124 | nBinsForHistogram = m_nBinsForHistogramStatistics;</span><br><span class="lineNum"> 407</span> | }<br><span class="lineNum"> 408</span> | <br><span class="lineNum"> 409</span><span class="lineCov"> 124 | nBins.insert(typename std::pair&lt;LabelPixelType, unsigned int&gt;(label, nBinsForHistogram));</span><br><span class="lineNum"> 410</span> | }<br><span class="lineNum"> 411</span> | <br><span class="lineNum"> 412</span><span class="lineCov"> 128 | typename ImageStatisticsFilterType::Pointer imageStatisticsFilter = ImageStatisticsFilterType::New();</span><br><span class="lineNum"> 413</span><span class="lineCov"> 64 | imageStatisticsFilter-&gt;SetDirectionTolerance(0.001);</span><br><span class="lineNum"> 414</span><span class="lineCov"> 64 | imageStatisticsFilter-&gt;SetCoordinateTolerance(0.001);</span><br><span class="lineNum"> 415</span><span class="lineCov"> 64 | imageStatisticsFilter-&gt;SetInput(adaptedImage);</span><br><span class="lineNum"> 416</span><span class="lineCov"> 64 | imageStatisticsFilter-&gt;SetLabelInput(maskImage);</span><br><span class="lineNum"> 417</span><span class="lineCov"> 64 | imageStatisticsFilter-&gt;SetHistogramParametersForLabels(nBins, minVals, maxVals);</span><br><span class="lineNum"> 418</span><span class="lineCov"> 64 | imageStatisticsFilter-&gt;Update();</span><br><span class="lineNum"> 419</span> | <br><span class="lineNum"> 420</span><span class="lineCov"> 128 | std::list&lt;int&gt; labels = imageStatisticsFilter-&gt;GetRelevantLabels();</span><br><span class="lineNum"> 421</span><span class="lineCov"> 64 | auto it = labels.begin();</span><br><span class="lineNum"> 422</span> | <br><span class="lineNum"> 423</span><span class="lineCov"> 188 | while (it != labels.end())</span><br><span class="lineNum"> 424</span> | {<br><span class="lineNum"> 425</span><span class="lineCov"> 248 | ImageStatisticsContainer::Pointer statisticContainerForLabelImage;</span><br><span class="lineNum"> 426</span><span class="lineCov"> 124 | auto labelIt = m_StatisticContainers.find(*it);</span><br><span class="lineNum"> 427</span> | // reset if statisticContainer already exist<br><span class="lineNum"> 428</span><span class="lineCov"> 124 | if (labelIt != m_StatisticContainers.end())</span><br><span class="lineNum"> 429</span> | {<br><span class="lineNum"> 430</span><span class="lineNoCov"> 0 | statisticContainerForLabelImage = labelIt-&gt;second;</span><br><span class="lineNum"> 431</span> | }<br><span class="lineNum"> 432</span> | // create new statisticContainer<br><span class="lineNum"> 433</span> | else<br><span class="lineNum"> 434</span> | {<br><span class="lineNum"> 435</span><span class="lineCov"> 124 | statisticContainerForLabelImage = ImageStatisticsContainer::New();</span><br><span class="lineNum"> 436</span><span class="lineCov"> 124 | statisticContainerForLabelImage-&gt;SetTimeGeometry(const_cast&lt;mitk::TimeGeometry*&gt;(timeGeometry));</span><br><span class="lineNum"> 437</span> | // link label (*it) to statisticContainer<br><span class="lineNum"> 438</span><span class="lineCov"> 124 | m_StatisticContainers.emplace(*it, statisticContainerForLabelImage);</span><br><span class="lineNum"> 439</span> | }<br><span class="lineNum"> 440</span> | <br><span class="lineNum"> 441</span><span class="lineCov"> 248 | ImageStatisticsContainer::ImageStatisticsObject statObj;</span><br><span class="lineNum"> 442</span> | <br><span class="lineNum"> 443</span> | // find min, max, minindex and maxindex<br><span class="lineNum"> 444</span> | // make sure to only look in the masked region, use a masker for this<br><span class="lineNum"> 445</span> | <br><span class="lineNum"> 446</span><span class="lineCov"> 248 | vnl_vector&lt;int&gt; minIndex, maxIndex;</span><br><span class="lineNum"> 447</span><span class="lineCov"> 124 | mitk::Point3D worldCoordinateMin;</span><br><span class="lineNum"> 448</span><span class="lineCov"> 124 | mitk::Point3D worldCoordinateMax;</span><br><span class="lineNum"> 449</span><span class="lineCov"> 124 | mitk::Point3D indexCoordinateMin;</span><br><span class="lineNum"> 450</span><span class="lineCov"> 124 | mitk::Point3D indexCoordinateMax;</span><br><span class="lineNum"> 451</span><span class="lineCov"> 124 | m_InternalImageForStatistics-&gt;GetGeometry()-&gt;IndexToWorld(minMaxFilter-&gt;GetMinIndex(*it), worldCoordinateMin);</span><br><span class="lineNum"> 452</span><span class="lineCov"> 124 | m_InternalImageForStatistics-&gt;GetGeometry()-&gt;IndexToWorld(minMaxFilter-&gt;GetMaxIndex(*it), worldCoordinateMax);</span><br><span class="lineNum"> 453</span><span class="lineCov"> 124 | m_Image-&gt;GetGeometry()-&gt;WorldToIndex(worldCoordinateMin, indexCoordinateMin);</span><br><span class="lineNum"> 454</span><span class="lineCov"> 124 | m_Image-&gt;GetGeometry()-&gt;WorldToIndex(worldCoordinateMax, indexCoordinateMax);</span><br><span class="lineNum"> 455</span> | <br><span class="lineNum"> 456</span><span class="lineCov"> 124 | minIndex.set_size(3);</span><br><span class="lineNum"> 457</span><span class="lineCov"> 124 | maxIndex.set_size(3);</span><br><span class="lineNum"> 458</span> | <br><span class="lineNum"> 459</span> | // for (unsigned int i=0; i &lt; tmpMaxIndex.GetIndexDimension(); i++)<br><span class="lineNum"> 460</span><span class="lineCov"> 496 | for (unsigned int i = 0; i &lt; 3; i++)</span><br><span class="lineNum"> 461</span> | {<br><span class="lineNum"> 462</span><span class="lineCov"> 372 | minIndex[i] = indexCoordinateMin[i];</span><br><span class="lineNum"> 463</span><span class="lineCov"> 372 | maxIndex[i] = indexCoordinateMax[i];</span><br><span class="lineNum"> 464</span> | }<br><span class="lineNum"> 465</span> | <br><span class="lineNum"> 466</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MINIMUMPOSITION(), minIndex);</span><br><span class="lineNum"> 467</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MAXIMUMPOSITION(), maxIndex);</span><br><span class="lineNum"> 468</span> | <br><span class="lineNum"> 469</span><span class="lineCov"> 124 | assert(std::abs(minMaxFilter-&gt;GetMax(*it) - imageStatisticsFilter-&gt;GetMaximum(*it)) &lt; mitk::eps);</span><br><span class="lineNum"> 470</span><span class="lineCov"> 124 | assert(std::abs(minMaxFilter-&gt;GetMin(*it) - imageStatisticsFilter-&gt;GetMinimum(*it)) &lt; mitk::eps);</span><br><span class="lineNum"> 471</span> | <br><span class="lineNum"> 472</span><span class="lineCov"> 124 | auto voxelVolume = GetVoxelVolume&lt;TPixel, VImageDimension&gt;(image);</span><br><span class="lineNum"> 473</span><span class="lineCov"> 124 | auto numberOfVoxels =</span><br><span class="lineNum"> 474</span><span class="lineCov"> 124 | static_cast&lt;unsigned long&gt;(imageStatisticsFilter-&gt;GetSum(*it) / (double)imageStatisticsFilter-&gt;GetMean(*it));</span><br><span class="lineNum"> 475</span><span class="lineCov"> 124 | auto volume = static_cast&lt;double&gt;(numberOfVoxels) * voxelVolume;</span><br><span class="lineNum"> 476</span><span class="lineCov"> 248 | auto rms = std::sqrt(std::pow(imageStatisticsFilter-&gt;GetMean(*it), 2.) +</span><br><span class="lineNum"> 477</span><span class="lineCov"> 124 | imageStatisticsFilter-&gt;GetVariance(*it)); // variance = sigma^2</span><br><span class="lineNum"> 478</span><span class="lineCov"> 124 | auto variance = imageStatisticsFilter-&gt;GetSigma(*it) * imageStatisticsFilter-&gt;GetSigma(*it);</span><br><span class="lineNum"> 479</span> | <br><span class="lineNum"> 480</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::NUMBEROFVOXELS(), numberOfVoxels);</span><br><span class="lineNum"> 481</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::VOLUME(), volume);</span><br><span class="lineNum"> 482</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MEAN(), imageStatisticsFilter-&gt;GetMean(*it));</span><br><span class="lineNum"> 483</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MINIMUM(), imageStatisticsFilter-&gt;GetMinimum(*it));</span><br><span class="lineNum"> 484</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MAXIMUM(), imageStatisticsFilter-&gt;GetMaximum(*it));</span><br><span class="lineNum"> 485</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::STANDARDDEVIATION(), imageStatisticsFilter-&gt;GetSigma(*it));</span><br><span class="lineNum"> 486</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::VARIANCE(), variance);</span><br><span class="lineNum"> 487</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::SKEWNESS(), imageStatisticsFilter-&gt;GetSkewness(*it));</span><br><span class="lineNum"> 488</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::KURTOSIS(), imageStatisticsFilter-&gt;GetKurtosis(*it));</span><br><span class="lineNum"> 489</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::RMS(), rms);</span><br><span class="lineNum"> 490</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MPP(), imageStatisticsFilter-&gt;GetMPP(*it));</span><br><span class="lineNum"> 491</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::ENTROPY(), imageStatisticsFilter-&gt;GetEntropy(*it));</span><br><span class="lineNum"> 492</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::MEDIAN(), imageStatisticsFilter-&gt;GetMedian(*it));</span><br><span class="lineNum"> 493</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::UNIFORMITY(), imageStatisticsFilter-&gt;GetUniformity(*it));</span><br><span class="lineNum"> 494</span><span class="lineCov"> 124 | statObj.AddStatistic(mitk::ImageStatisticsConstants::UPP(), imageStatisticsFilter-&gt;GetUPP(*it));</span><br><span class="lineNum"> 495</span><span class="lineCov"> 124 | statObj.m_Histogram = imageStatisticsFilter-&gt;GetHistogram(*it).GetPointer();</span><br><span class="lineNum"> 496</span> | <br><span class="lineNum"> 497</span><span class="lineCov"> 124 | statisticContainerForLabelImage-&gt;SetStatisticsForTimeStep(timeStep, statObj);</span><br><span class="lineNum"> 498</span><span class="lineCov"> 124 | ++it;</span><br><span class="lineNum"> 499</span> | }<br><span class="lineNum"> 500</span> | <br><span class="lineNum"> 501</span> | // swap maskGenerators back<br><span class="lineNum"> 502</span><span class="lineCov"> 64 | if (swapMasks)</span><br><span class="lineNum"> 503</span> | {<br><span class="lineNum"> 504</span><span class="lineCov"> 4 | m_SecondaryMask = m_InternalMask;</span><br><span class="lineNum"> 505</span><span class="lineCov"> 4 | m_InternalMask = nullptr;</span><br><span class="lineNum"> 506</span> | }<br><span class="lineNum"> 507</span><span class="lineCov"> 64 | }</span><br><span class="lineNum"> 508</span> | <br><span class="lineNum"> 509</span><span class="lineCov"> 70 | bool ImageStatisticsCalculator::IsUpdateRequired(LabelIndex label) const</span><br><span class="lineNum"> 510</span> | {<br><span class="lineNum"> 511</span><span class="lineCov"> 70 | unsigned long thisClassTimeStamp = this-&gt;GetMTime();</span><br><span class="lineNum"> 512</span><span class="lineCov"> 70 | unsigned long inputImageTimeStamp = m_Image-&gt;GetMTime();</span><br><span class="lineNum"> 513</span> | <br><span class="lineNum"> 514</span><span class="lineCov"> 70 | auto it = m_StatisticContainers.find(label);</span><br><span class="lineNum"> 515</span><span class="lineCov"> 70 | if (it == m_StatisticContainers.end())</span><br><span class="lineNum"> 516</span> | {<br><span class="lineNum"> 517</span><span class="lineCov"> 46 | return true;</span><br><span class="lineNum"> 518</span> | }<br><span class="lineNum"> 519</span> | <br><span class="lineNum"> 520</span><span class="lineCov"> 24 | unsigned long statisticsTimeStamp = it-&gt;second-&gt;GetMTime();</span><br><span class="lineNum"> 521</span> | <br><span class="lineNum"> 522</span><span class="lineCov"> 24 | if (thisClassTimeStamp &gt; statisticsTimeStamp) // inputs have changed</span><br><span class="lineNum"> 523</span> | {<br><span class="lineNum"> 524</span><span class="lineNoCov"> 0 | return true;</span><br><span class="lineNum"> 525</span> | }<br><span class="lineNum"> 526</span> | <br><span class="lineNum"> 527</span><span class="lineCov"> 24 | if (inputImageTimeStamp &gt; statisticsTimeStamp) // image has changed</span><br><span class="lineNum"> 528</span> | {<br><span class="lineNum"> 529</span><span class="lineNoCov"> 0 | return true;</span><br><span class="lineNum"> 530</span> | }<br><span class="lineNum"> 531</span> | <br><span class="lineNum"> 532</span><span class="lineCov"> 24 | if (m_MaskGenerator.IsNotNull())</span><br><span class="lineNum"> 533</span> | {<br><span class="lineNum"> 534</span><span class="lineCov"> 12 | unsigned long maskGeneratorTimeStamp = m_MaskGenerator-&gt;GetMTime();</span><br><span class="lineNum"> 535</span><span class="lineCov"> 12 | if (maskGeneratorTimeStamp &gt; statisticsTimeStamp) // there is a mask generator and it has changed</span><br><span class="lineNum"> 536</span> | {<br><span class="lineNum"> 537</span><span class="lineNoCov"> 0 | return true;</span><br><span class="lineNum"> 538</span> | }<br><span class="lineNum"> 539</span> | }<br><span class="lineNum"> 540</span> | <br><span class="lineNum"> 541</span><span class="lineCov"> 24 | if (m_SecondaryMaskGenerator.IsNotNull())</span><br><span class="lineNum"> 542</span> | {<br><span class="lineNum"> 543</span><span class="lineCov"> 2 | unsigned long maskGeneratorTimeStamp = m_SecondaryMaskGenerator-&gt;GetMTime();</span><br><span class="lineNum"> 544</span><span class="lineCov"> 2 | if (maskGeneratorTimeStamp &gt; statisticsTimeStamp) // there is a secondary mask generator and it has changed</span><br><span class="lineNum"> 545</span> | {<br><span class="lineNum"> 546</span><span class="lineNoCov"> 0 | return true;</span><br><span class="lineNum"> 547</span> | }<br><span class="lineNum"> 548</span> | }<br><span class="lineNum"> 549</span> | <br><span class="lineNum"> 550</span><span class="lineCov"> 24 | return false;</span><br><span class="lineNum"> 551</span> | }<br><span class="lineNum"> 552</span> | } // namespace mitk<br><span class="lineNum"> 553</span> | </pre>
<br>
<br>
<div id="footer">
<div id="kitwarelogo">
<a href="http://www.kitware.com/">
<img src="./CDash _ MITK_files/blogo.gif" border="0" height="30" alt="logo">
</a>
</div>
<div id="footerlogo">
<a href="http://www.cdash.org/">
<img src="./CDash _ MITK_files/logo2.gif" border="0" height="40" alt="CDash logo">
</a>
<span id="footertext">
CDash
2.0.2 ©&nbsp;<a href="http://www.kitware.com/">Kitware</a>
| <a href="http://www.cdash.org/Bug" target="blank">Report problems</a></span>
</div>
</div>
<div id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div></body></html>

File Metadata

Mime Type
text/html
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
729862
Default Alt Text
CDash _ MITK.html (105 KB)

Event Timeline