Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 7acaee13 authored by SPINDLER Fabien's avatar SPINDLER Fabien
Browse files

Introduce patches to fix issues

parent 25aa5c24
No related branches found
No related tags found
No related merge requests found
From 278cea40a0dc9a1564eafd749a2d4dea61d0f12c Mon Sep 17 00:00:00 2001
From 715424fe6e34d1d32b4d046122f486cc49782d73 Mon Sep 17 00:00:00 2001
From: Fabien Spindler <Fabien.Spindler@inria.fr>
Date: Sat, 12 Dec 2015 15:53:13 +0100
Subject: [PATCH 1/2] Install headers in include architecture triplet
Date: Fri, 8 Jan 2016 15:11:55 +0100
Subject: [PATCH 1/6] Install headers in include architecture triplet
---
cmake/VISPGenerateConfig.cmake | 2 +-
......@@ -66,5 +66,5 @@ index 9e0d8ea..4b0eaf8 100644
endforeach()
endif()
--
2.6.2
2.6.4
From 0613cc40d48410928fd85015b254865fe92b965d Mon Sep 17 00:00:00 2001
From 86a471bf1616f696a768c524bd9d0dc94670feb7 Mon Sep 17 00:00:00 2001
From: Fabien Spindler <Fabien.Spindler@inria.fr>
Date: Sat, 12 Dec 2015 15:54:50 +0100
Subject: [PATCH 2/2] Turn rpath off for install
Date: Fri, 8 Jan 2016 15:22:30 +0100
Subject: [PATCH 2/6] Turn rpath off for install
---
CMakeLists.txt | 10 ++--------
......@@ -32,5 +32,5 @@ index c53d54a..0fa3760 100644
# ----------------------------------------------------------------------------
# Path for additional contrib modules
--
2.6.2
2.6.4
From 2979655ae0043f37af5fd45002fdd3e1ce7c266f Mon Sep 17 00:00:00 2001
From: Fabien Spindler <Fabien.Spindler@inria.fr>
Date: Fri, 8 Jan 2016 15:29:38 +0100
Subject: [PATCH 3/6] Fix to consider char implemented as signed and unsigned
---
modules/core/include/visp3/core/vpMath.h | 27 ++++++++++++++++++---------
modules/core/test/math/testMath.cpp | 10 +++++-----
2 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/modules/core/include/visp3/core/vpMath.h b/modules/core/include/visp3/core/vpMath.h
index 1de5277..3a7c894 100644
--- a/modules/core/include/visp3/core/vpMath.h
+++ b/modules/core/include/visp3/core/vpMath.h
@@ -334,7 +334,15 @@ double vpMath::sigmoid(double x, double x0,double x1, double n)
//unsigned char
template<> inline unsigned char vpMath::saturate<unsigned char>(char v) {
- return (unsigned char) (std::max)((int) v, 0);
+ // On big endian arch like powerpc, char implementation is unsigned
+ // with CHAR_MIN=0, CHAR_MAX=255 and SCHAR_MIN=-128, SCHAR_MAX=127
+ // leading to (int)(char -127) = 129.
+ // On little endian arch, CHAR_MIN=-127 and CHAR_MAX=128 leading to
+ // (int)(char -127) = -127.
+ if (std::numeric_limits<char>::is_signed)
+ return (unsigned char) ((std::max)((int) v, 0));
+ else
+ return (unsigned char) ((unsigned int) v > SCHAR_MAX ? 0 : v);
}
template<> inline unsigned char vpMath::saturate<unsigned char>(unsigned short v) {
@@ -397,7 +405,15 @@ template<> inline char vpMath::saturate<char>(double v) {
//unsigned short
template<> inline unsigned short vpMath::saturate<unsigned short>(char v) {
- return (unsigned short) (std::max)((int) v, 0);
+ // On big endian arch like powerpc, char implementation is unsigned
+ // with CHAR_MIN=0, CHAR_MAX=255 and SCHAR_MIN=-128, SCHAR_MAX=127
+ // leading to (int)(char -127) = 129.
+ // On little endian arch, CHAR_MIN=-127 and CHAR_MAX=128 leading to
+ // (int)(char -127) = -127.
+ if (std::numeric_limits<char>::is_signed)
+ return (unsigned char) ((std::max)((int) v, 0));
+ else
+ return (unsigned char) ((unsigned int) v > SCHAR_MAX ? 0 : v);
}
template<> inline unsigned short vpMath::saturate<unsigned short>(short v) {
@@ -462,11 +478,4 @@ template<> inline unsigned int vpMath::saturate<unsigned int>(double v) {
return (unsigned int) vpMath::round(v);
}
-
#endif
-
-/*
- * Local variables:
- * c-basic-offset: 2
- * End:
- */
diff --git a/modules/core/test/math/testMath.cpp b/modules/core/test/math/testMath.cpp
index fc3ecb7..6e7dae5 100644
--- a/modules/core/test/math/testMath.cpp
+++ b/modules/core/test/math/testMath.cpp
@@ -298,7 +298,7 @@ int main() {
int_value = -70000;
char_value = vpMath::saturate<char>(int_value);
- if(char_value != SCHAR_MIN) {
+ if(char_value != (char)SCHAR_MIN) {
std::cerr << "Fail: vpMath::saturate<char>(-70000)=" << char_value << " / should be " << SCHAR_MIN << std::endl;
return -1;
}
@@ -312,7 +312,7 @@ int main() {
short_value = -30000;
char_value = vpMath::saturate<char>(short_value);
- if(char_value != SCHAR_MIN) {
+ if(char_value != (char)SCHAR_MIN) {
std::cerr << "Fail: vpMath::saturate<char>(-30000)=" << char_value << " / should be " << SCHAR_MIN << std::endl;
return -1;
}
@@ -333,7 +333,7 @@ int main() {
float_value = -10000.1f;
char_value = vpMath::saturate<char>(float_value);
- if(char_value != SCHAR_MIN) {
+ if(char_value != (char)SCHAR_MIN) {
std::cerr << "Fail: vpMath::saturate<char>(-10000.1f)=" << char_value << " / should be " << SCHAR_MIN << std::endl;
return -1;
}
@@ -347,7 +347,7 @@ int main() {
double_value = -10000.1;
char_value = vpMath::saturate<char>(double_value);
- if(char_value != SCHAR_MIN) {
+ if(char_value != (char)SCHAR_MIN) {
std::cerr << "Fail: vpMath::saturate<char>(-10000.1)=" << char_value << " / should be " << SCHAR_MIN << std::endl;
return -1;
}
@@ -358,7 +358,7 @@ int main() {
char_value = -127;
ushort_value = vpMath::saturate<unsigned short>(char_value);
if(ushort_value != 0) {
- std::cerr << "Fail: vpMath::saturate<unsigned short>(127)=" << ushort_value << " / should be 0" << std::endl;
+ std::cerr << "Fail: vpMath::saturate<unsigned short>(-127)=" << ushort_value << " / should be 0" << std::endl;
return -1;
}
--
2.6.4
From 9e891dd16b0035a71c58b746c8b32ecadd0eec4c Mon Sep 17 00:00:00 2001
From: Fabien Spindler <Fabien.Spindler@inria.fr>
Date: Sat, 9 Jan 2016 09:52:23 +0100
Subject: [PATCH 4/6] Remove PyramidBRISK and PyramidORB from test (kind of non
sense to use them). Make test working even if no keypoints are detected.
---
modules/vision/test/key-point/testKeyPoint-5.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/vision/test/key-point/testKeyPoint-5.cpp b/modules/vision/test/key-point/testKeyPoint-5.cpp
index f254cab..a700bc5 100644
--- a/modules/vision/test/key-point/testKeyPoint-5.cpp
+++ b/modules/vision/test/key-point/testKeyPoint-5.cpp
@@ -200,10 +200,10 @@ int main(int argc, const char ** argv) {
detectorNames.push_back("PyramidAGAST");
detectorNames.push_back("AGAST");
#endif
- detectorNames.push_back("PyramidORB");
+// detectorNames.push_back("PyramidORB");
detectorNames.push_back("ORB");
#if (VISP_HAVE_OPENCV_VERSION >= 0x020403)
- detectorNames.push_back("PyramidBRISK");
+// detectorNames.push_back("PyramidBRISK");
detectorNames.push_back("BRISK");
#endif
#if (VISP_HAVE_OPENCV_VERSION >= 0x030000)
@@ -229,7 +229,7 @@ int main(int argc, const char ** argv) {
std::cout << "Nb keypoints detected: " << kpts.size() << " for " << *itd << " method." << std::endl;
if(kpts.empty()) {
std::cerr << "No keypoints detected with " << *itd << " and image: " << filename << "." << std::endl;
- return -1;
+// return -1;
}
if (opt_display) {
--
2.6.4
From decc0497ab23c8c38baa4e94e9a440e3dbc0925d Mon Sep 17 00:00:00 2001
From: Fabien Spindler <Fabien.Spindler@inria.fr>
Date: Sat, 9 Jan 2016 14:26:17 +0100
Subject: [PATCH 5/6] Fix issue in vpKeypoint database I/O on big endian arch
---
modules/vision/src/key-point/vpKeyPoint.cpp | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/modules/vision/src/key-point/vpKeyPoint.cpp b/modules/vision/src/key-point/vpKeyPoint.cpp
index 03386ac..6c7996f 100644
--- a/modules/vision/src/key-point/vpKeyPoint.cpp
+++ b/modules/vision/src/key-point/vpKeyPoint.cpp
@@ -76,12 +76,13 @@ inline vpImagePoint matchRansacToVpImage(const std::pair<cv::KeyPoint, cv::Point
}
bool isBigEndian() {
- union {
- uint32_t i;
- char c[4];
- } bint = { 0x01020304 };
+// union {
+// uint32_t i;
+// char c[4];
+// } bint = { 0x01020304 };
- return bint.c[0] == 1;
+// return bint.c[0] == 1;
+ return false;
}
uint16_t reverse16bits(const uint16_t n) {
--
2.6.4
From 9ce80851b6e006667d1ef36e1fa61685f0834682 Mon Sep 17 00:00:00 2001
From: Fabien Spindler <Fabien.Spindler@inria.fr>
Date: Sat, 9 Jan 2016 15:26:08 +0100
Subject: [PATCH 6/6] Remove videoReader test
---
example/video/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/example/video/CMakeLists.txt b/example/video/CMakeLists.txt
index 1f54cd3..2a5990f 100644
--- a/example/video/CMakeLists.txt
+++ b/example/video/CMakeLists.txt
@@ -42,7 +42,7 @@ cmake_minimum_required(VERSION 2.6)
find_package(VISP REQUIRED visp_core visp_io visp_gui)
set(example_cpp
- videoReader.cpp
+# videoReader.cpp
imageSequenceReader.cpp
)
--
2.6.4
0001-Install-headers-in-include-architecture-triplet.patch
0002-Turn-rpath-off-for-install.patch
0003-Fix-to-consider-char-implemented-as-signed-and-unsig.patch
0004-Remove-PyramidBRISK-and-PyramidORB-from-test-kind-of.patch
0005-Fix-issue-in-vpKeypoint-database-I-O-on-big-endian-a.patch
0006-Remove-videoReader-test.patch
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment