本文整理汇总了C++中ossimRefPtr::getNumberOfDecimationLevels方法的典型用法代码示例。如果您正苦于以下问题:C++ ossimRefPtr::getNumberOfDecimationLevels方法的具体用法?C++ ossimRefPtr::getNumberOfDecimationLevels怎么用?C++ ossimRefPtr::getNumberOfDecimationLevels使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ossimRefPtr
的用法示例。
在下文中一共展示了ossimRefPtr::getNumberOfDecimationLevels方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: hasRequiredOverview
bool ossimImageUtil::hasRequiredOverview( ossimRefPtr<ossimImageHandler>& ih,
ossimRefPtr<ossimOverviewBuilderBase>& ob )
{
bool result = false;
if ( ih.valid() && ob.valid() && ( getCopyAllFlag() == false ) )
{
if ( ih->getClassName() == "ossimCcfTileSource" )
{
// CCF reader does not use external overviews.
result = true;
}
else
{
// Note we always have one rset
ossim_uint32 required = 1;
ossim_uint32 startingResLevel = ih->getNumberOfDecimationLevels();
ossim_uint32 overviewStopDimension = ob->getOverviewStopDimension();
ossim_uint32 largestImageDimension =
ih->getNumberOfSamples(0) >
ih->getNumberOfLines(0) ?
ih->getNumberOfSamples(0) :
ih->getNumberOfLines(0);
while(largestImageDimension > overviewStopDimension)
{
largestImageDimension /= 2;
++required;
}
if ( startingResLevel >= required )
{
result = true;
}
}
}
return result;
}
示例2: createOverview
// Create overview for entry:
void ossimImageUtil::createOverview(ossimRefPtr<ossimImageHandler>& ih,
ossimRefPtr<ossimOverviewBuilderBase>& ob,
ossim_uint32 entry,
bool useEntryIndex,
bool& consumedHistogramOptions)
{
static const char M[] = "ossimImageUtil::createOverview #2";
if(traceDebug())
{
ossimNotify(ossimNotifyLevel_DEBUG) << M << " entered...\n";
}
if ( ih.valid() && ob.valid() )
{
if (useEntryIndex)
{
// Set entry before deriving file name.
ih->setCurrentEntry(entry);
ossimNotify(ossimNotifyLevel_NOTICE) << "entry number: "<< entry << std::endl;
}
ossimFilename outputFile =
ih->getFilenameWithThisExtension(ossimString(".ovr"), useEntryIndex);
if ( rebuildOverviews() )
{
ih->closeOverview();
if ( outputFile.exists() )
{
outputFile.remove();
}
}
if ( getInternalOverviewsFlag() )
{
if ( ih->getClassName() == "ossimTiffTileSource")
{
//---
// INTERNAL_OVERVIEWS_FLAG_KW is set to true:
// Tiff reader can handle internal overviews. Set the output file to
// input file. Do it after the above remove so that if there were
// external overviews they will get removed.
//---
outputFile = ih->getFilename();
}
else
{
ossimNotify(ossimNotifyLevel_NOTICE)
<< "Internal overviews not supported for reader type: "
<<ih->getClassName()
<< "\nIgnoring option..."
<< endl;
}
}
if ( hasRequiredOverview( ih, ob ) == false )
{
//---
// Set create histogram code...
//
// Notes:
// 1) Must put this logic after any removal of external overview file.
//
// 2) Base file could have built in overviews, e.g. jp2 files. So the sequensor could
// start at R6 even if there is no external overview file.
//
// 3) If user want the histogram from R0 the overview builder can do as long as
// ossimImageHandler::getNumberOfDecimationLevels returns 1. If we are starting
// overview building at R6 then we must do the create histogram in a separate path.
//---
ossimHistogramMode histoMode = OSSIM_HISTO_MODE_UNKNOWN;
if ( createHistogram() ||
( createHistogramR0() && ( ih->getNumberOfDecimationLevels() == 1 ) ) )
{
histoMode = OSSIM_HISTO_MODE_NORMAL;
}
else if ( createHistogramFast() )
{
histoMode = OSSIM_HISTO_MODE_FAST;
}
if(traceDebug())
{
ossimNotify(ossimNotifyLevel_DEBUG) << "Histogram mode: " << histoMode << "\n";
}
if ( histoMode != OSSIM_HISTO_MODE_UNKNOWN )
{
consumedHistogramOptions = true;
ob->setHistogramMode(histoMode);
ossimNotify(ossimNotifyLevel_NOTICE)
<< "Creating overviews with histogram for file: " << ih->getFilename() << std::endl;
}
else
{
if ( histoMode != OSSIM_HISTO_MODE_UNKNOWN )
{
consumedHistogramOptions = false;
//.........这里部分代码省略.........