Merge remote-tracking branch 'refs/remotes/upstream/master' into rho
This commit is contained in:
commit
7e273396c1
@ -903,7 +903,7 @@ struct FeatureValAndIdxPrecalc : ParallelLoopBody
|
||||
*(idst + fi*sample_count + si) = si;
|
||||
}
|
||||
if ( is_buf_16u )
|
||||
std::sort(idst + fi*sample_count, idst + (fi + 1)*sample_count, LessThanIdx<float, unsigned short>(valCache->ptr<float>(fi)) );
|
||||
std::sort(udst + fi*sample_count, udst + (fi + 1)*sample_count, LessThanIdx<float, unsigned short>(valCache->ptr<float>(fi)) );
|
||||
else
|
||||
std::sort(idst + fi*sample_count, idst + (fi + 1)*sample_count, LessThanIdx<float, int>(valCache->ptr<float>(fi)) );
|
||||
}
|
||||
|
@ -1,25 +1,99 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Text style
|
||||
|
||||
TEXT_RED="$(tput setaf 1)"
|
||||
TEXT_GREEN="$(tput setaf 2)"
|
||||
TEXT_CYAN="$(tput setaf 6)"
|
||||
TEXT_RESET="$(tput sgr0)"
|
||||
|
||||
# Test binaries and data paths
|
||||
|
||||
OPENCV_TEST_PATH=@CMAKE_INSTALL_PREFIX@/@OPENCV_TEST_INSTALL_PATH@
|
||||
OPENCV_PYTHON_TESTS=@OPENCV_PYTHON_TESTS_LIST@
|
||||
export OPENCV_TEST_DATA_PATH=@CMAKE_INSTALL_PREFIX@/share/OpenCV/testdata
|
||||
|
||||
# Run tests
|
||||
|
||||
SUMMARY_STATUS=0
|
||||
FAILED_TESTS=""
|
||||
PASSED_TESTS=""
|
||||
|
||||
for t in "$OPENCV_TEST_PATH/"opencv_test_* "$OPENCV_TEST_PATH/"opencv_perf_*;
|
||||
do
|
||||
report="`basename "$t"`-`date --rfc-3339=date`.xml"
|
||||
"$t" --perf_min_samples=1 --perf_force_samples=1 --gtest_output=xml:"$report"
|
||||
TEST_STATUS=$?
|
||||
if [ $TEST_STATUS -ne 0 ]; then
|
||||
SUMMARY_STATUS=$TEST_STATUS
|
||||
fi
|
||||
test_name=`basename "$t"`
|
||||
report="$test_name-`date --rfc-3339=date`.xml"
|
||||
|
||||
cmd="$t --perf_min_samples=1 --perf_force_samples=1 --gtest_output=xml:\"$report\""
|
||||
|
||||
seg_reg="s/^/${TEXT_CYAN}[$test_name]${TEXT_RESET} /" # append test name
|
||||
seg_reg="${seg_reg};s/\[==========\]/${TEXT_GREEN}&${TEXT_RESET}/g" # green for [==========]
|
||||
seg_reg="${seg_reg};s/\[----------\]/${TEXT_GREEN}&${TEXT_RESET}/g" # green for [----------]
|
||||
seg_reg="${seg_reg};s/\[ RUN \]/${TEXT_GREEN}&${TEXT_RESET}/g" # green for [ RUN ]
|
||||
seg_reg="${seg_reg};s/\[ OK \]/${TEXT_GREEN}&${TEXT_RESET}/g" # green for [ OK ]
|
||||
seg_reg="${seg_reg};s/\[ FAILED \]/${TEXT_RED}&${TEXT_RESET}/g" # red for [ FAILED ]
|
||||
seg_reg="${seg_reg};s/\[ PASSED \]/${TEXT_GREEN}&${TEXT_RESET}/g" # green for [ PASSED ]
|
||||
|
||||
echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} RUN : $cmd"
|
||||
eval "$cmd" | sed -r "$seg_reg"
|
||||
|
||||
ret=${PIPESTATUS[0]}
|
||||
echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} RETURN_CODE : $ret"
|
||||
|
||||
if [ $ret -ne 0 ]; then
|
||||
echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} ${TEXT_RED}FAILED${TEXT_RESET}"
|
||||
SUMMARY_STATUS=1
|
||||
FAILED_TESTS="$FAILED_TESTS $test_name"
|
||||
else
|
||||
echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} ${TEXT_GREEN}OK${TEXT_RESET}"
|
||||
PASSED_TESTS="$PASSED_TESTS $test_name"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
done
|
||||
|
||||
for t in $OPENCV_PYTHON_TESTS;
|
||||
do
|
||||
test_name=`basename "$t"`
|
||||
report="$test_name-`date --rfc-3339=date`.xml"
|
||||
|
||||
cmd="py.test --junitxml $report \"$OPENCV_TEST_PATH\"/$t"
|
||||
|
||||
seg_reg="s/^/${TEXT_CYAN}[$test_name]${TEXT_RESET} /" # append test name
|
||||
|
||||
echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} RUN : $cmd"
|
||||
eval "$cmd" | sed -r "$seg_reg"
|
||||
|
||||
ret=${PIPESTATUS[0]}
|
||||
echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} RETURN_CODE : $ret"
|
||||
|
||||
if [ $ret -ne 0 ]; then
|
||||
echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} ${TEXT_RED}FAILED${TEXT_RESET}"
|
||||
SUMMARY_STATUS=1
|
||||
FAILED_TESTS="$FAILED_TESTS $test_name"
|
||||
else
|
||||
echo "${TEXT_CYAN}[$test_name]${TEXT_RESET} ${TEXT_GREEN}OK${TEXT_RESET}"
|
||||
PASSED_TESTS="$PASSED_TESTS $test_name"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
done
|
||||
|
||||
# Remove temporary test files
|
||||
|
||||
rm -f /tmp/__opencv_temp.*
|
||||
|
||||
# Report final status
|
||||
|
||||
echo "${TEXT_CYAN}===============================================================${TEXT_RESET}"
|
||||
echo "${TEXT_CYAN}PASSED TESTS : $PASSED_TESTS${TEXT_RESET}"
|
||||
echo "${TEXT_CYAN}FAILED TESTS : $FAILED_TESTS${TEXT_RESET}"
|
||||
if [ $SUMMARY_STATUS -eq 0 ]; then
|
||||
echo "All OpenCV tests finished successfully"
|
||||
echo "${TEXT_GREEN}STATUS : OK${TEXT_RESET}"
|
||||
echo "${TEXT_GREEN}STATUS : All OpenCV tests finished successfully${TEXT_RESET}"
|
||||
else
|
||||
echo "OpenCV tests finished with status $SUMMARY_STATUS"
|
||||
echo "${TEXT_RED}STATUS : FAIL${TEXT_RESET}"
|
||||
echo "${TEXT_RED}STATUS : OpenCV tests finished with status $SUMMARY_STATUS${TEXT_RESET}"
|
||||
fi
|
||||
|
||||
return $SUMMARY_STATUS
|
||||
exit $SUMMARY_STATUS
|
||||
|
@ -1471,7 +1471,7 @@ bool haveOpenCL()
|
||||
|
||||
bool useOpenCL()
|
||||
{
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
if( data->useOpenCL < 0 )
|
||||
{
|
||||
try
|
||||
@ -1490,7 +1490,7 @@ void setUseOpenCL(bool flag)
|
||||
{
|
||||
if( haveOpenCL() )
|
||||
{
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
data->useOpenCL = (flag && Device::getDefault().ptr() != NULL) ? 1 : 0;
|
||||
}
|
||||
}
|
||||
@ -2161,7 +2161,7 @@ size_t Device::profilingTimerResolution() const
|
||||
const Device& Device::getDefault()
|
||||
{
|
||||
const Context& ctx = Context::getDefault();
|
||||
int idx = coreTlsData.get()->device;
|
||||
int idx = getCoreTlsData().get()->device;
|
||||
const Device& device = ctx.device(idx);
|
||||
return device;
|
||||
}
|
||||
@ -3040,7 +3040,7 @@ void* Queue::ptr() const
|
||||
|
||||
Queue& Queue::getDefault()
|
||||
{
|
||||
Queue& q = coreTlsData.get()->oclQueue;
|
||||
Queue& q = getCoreTlsData().get()->oclQueue;
|
||||
if( !q.p && haveOpenCL() )
|
||||
q.create(Context::getDefault());
|
||||
return q;
|
||||
|
@ -255,7 +255,7 @@ struct CoreTLSData
|
||||
#endif
|
||||
};
|
||||
|
||||
extern TLSData<CoreTLSData> coreTlsData;
|
||||
TLSData<CoreTLSData>& getCoreTlsData();
|
||||
|
||||
#if defined(BUILD_SHARED_LIBS)
|
||||
#if defined WIN32 || defined _WIN32 || defined WINCE
|
||||
|
@ -731,7 +731,7 @@ void RNG::fill( InputOutputArray _mat, int disttype,
|
||||
|
||||
cv::RNG& cv::theRNG()
|
||||
{
|
||||
return coreTlsData.get()->rng;
|
||||
return getCoreTlsData().get()->rng;
|
||||
}
|
||||
|
||||
void cv::randu(InputOutputArray dst, InputArray low, InputArray high)
|
||||
|
@ -1146,12 +1146,20 @@ TLSStorage::~TLSStorage()
|
||||
tlsData_.clear();
|
||||
}
|
||||
|
||||
TLSData<CoreTLSData> coreTlsData;
|
||||
|
||||
|
||||
TLSData<CoreTLSData>& getCoreTlsData()
|
||||
{
|
||||
static TLSData<CoreTLSData> *value = new TLSData<CoreTLSData>();
|
||||
return *value;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef CV_COLLECT_IMPL_DATA
|
||||
void setImpl(int flags)
|
||||
{
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
data->implFlags = flags;
|
||||
data->implCode.clear();
|
||||
data->implFun.clear();
|
||||
@ -1159,7 +1167,7 @@ void setImpl(int flags)
|
||||
|
||||
void addImpl(int flag, const char* func)
|
||||
{
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
data->implFlags |= flag;
|
||||
if(func) // use lazy collection if name was not specified
|
||||
{
|
||||
@ -1174,7 +1182,7 @@ void addImpl(int flag, const char* func)
|
||||
|
||||
int getImpl(std::vector<int> &impl, std::vector<String> &funName)
|
||||
{
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
impl = data->implCode;
|
||||
funName = data->implFun;
|
||||
return data->implFlags; // return actual flags for lazy collection
|
||||
@ -1182,13 +1190,13 @@ int getImpl(std::vector<int> &impl, std::vector<String> &funName)
|
||||
|
||||
bool useCollection()
|
||||
{
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
return data->useCollection;
|
||||
}
|
||||
|
||||
void setUseCollection(bool flag)
|
||||
{
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
data->useCollection = flag;
|
||||
}
|
||||
#endif
|
||||
@ -1221,7 +1229,7 @@ String getIppErrorLocation()
|
||||
bool useIPP()
|
||||
{
|
||||
#ifdef HAVE_IPP
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
if(data->useIPP < 0)
|
||||
{
|
||||
const char* pIppEnv = getenv("OPENCV_IPP");
|
||||
@ -1238,7 +1246,7 @@ bool useIPP()
|
||||
|
||||
void setUseIPP(bool flag)
|
||||
{
|
||||
CoreTLSData* data = coreTlsData.get();
|
||||
CoreTLSData* data = getCoreTlsData().get();
|
||||
#ifdef HAVE_IPP
|
||||
data->useIPP = flag;
|
||||
#else
|
||||
|
@ -731,7 +731,7 @@ public:
|
||||
for( i = 0; i < l_count; i++ )
|
||||
{
|
||||
int n = layer_sizes[i];
|
||||
x[i].resize(n);
|
||||
x[i].resize(n+1);
|
||||
df[i].resize(n);
|
||||
dw[i].create(weights[i].size(), CV_64F);
|
||||
}
|
||||
|
@ -449,6 +449,12 @@ bool FeatureEvaluator::updateScaleData( Size imgsz, const std::vector<float>& _s
|
||||
s.ystep = sc >= 2 ? 1 : 2;
|
||||
s.scale = sc;
|
||||
s.szi = Size(sz.width+1, sz.height+1);
|
||||
|
||||
if( i == 0 )
|
||||
{
|
||||
layer_dy = s.szi.height;
|
||||
}
|
||||
|
||||
if( layer_ofs.x + s.szi.width > sbufSize.width )
|
||||
{
|
||||
layer_ofs = Point(0, layer_ofs.y + layer_dy);
|
||||
|
@ -301,8 +301,10 @@ void HOGDescriptor::computeGradient(const Mat& img, Mat& grad, Mat& qangle,
|
||||
for( y = 0; y < gradsize.height; y++ )
|
||||
{
|
||||
const uchar* imgPtr = img.ptr(ymap[y]);
|
||||
const uchar* prevPtr = img.ptr(ymap[y-1]);
|
||||
const uchar* nextPtr = img.ptr(ymap[y+1]);
|
||||
//In case subimage is used ptr() generates an assert for next and prev rows
|
||||
//(see http://code.opencv.org/issues/4149)
|
||||
const uchar* prevPtr = img.data + img.step*ymap[y-1];
|
||||
const uchar* nextPtr = img.data + img.step*ymap[y+1];
|
||||
|
||||
float* gradPtr = grad.ptr<float>(y);
|
||||
uchar* qanglePtr = qangle.ptr(y);
|
||||
|
@ -398,5 +398,5 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user