You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
core module is the cornerstone of OpenCV. It implements basic functionality and so it's used in any OpenCV-based application. Therefore it makes sense to clean it up in OpenCV 5.0 in order to reduce footprint as much as possible. Sometimes this footprint is not just about the consumed space, but also about the compile time overhead.
Here are the suggested items (these are not all the changes proposed for core module in OpenCV 5, a part of them):
clean modules/core/include/opencv2/core directory as much as possible. Currently there are some obsolete items there and generally the stuff is quite poorly organized. Note that all the programs include many of those headers indirectly, and so it makes compile time longer. Besides, it creates a lot of confusion for people who explore OpenCV source code. These are some examples of headers that can be combined with other headers or removed or moved to other modules or to src directory:
neon_utils.cpp, sse_utils.cpp, vsx_utils.cpp. Clearly, they should be removed or duplicated in those .cpp files where the functionality is needed. No need to make this stuff public across modules.
quaternion and dualquaternion can be combined. It's just one little and rarely used feature in OpenCV.
parallel/ subdirectory - those details should not be exposed outside of the core module. All modules should use cv::parallel_for_().
llapi.h name is misleading, the content must be edited and probably revised, merged with some other headers.
private/* must be removed
the whole stuff in detail/* can be combined with other headers or moved to src.
cuda* and cuda/* contain way more stuff than needed. In a separate feature request (TBD) it's suggested to move CUDA completely to 3rdparty/cuda HAL module.
Probably remove optim.hpp and all the functionality defined in it. Move it to some module in opencv_contrib (or maybe to 3d module if some of this functionality is needed there)
Remove old data structures (MemStorage etc.) We don't need them anymore (maybe except for Chessboard corner detector)
Remove SparseMat data structure that we don't need apparently.
Retain Algorithm, but remove ParamType<> trait.
Possibly move kmeans, PCA to the refreshed 'Features' module
Additional context
No response
The text was updated successfully, but these errors were encountered:
parallel/ subdirectory - those details should not be exposed outside of the core module. All modules should use cv::parallel_for_().
Probably we should extend cv::parallel_for_() as we need a threading cost model analysis like Eigen offers so as to parallelize simple yet potentially large for loop (just like in nary_eltwise_layers.cpp).
parallel/ subdirectory - those details should not be exposed outside of the core module. All modules should use cv::parallel_for_().
Completely wrong assumption.
There is API for customized parallel backends. In addition there are samples of minimal parallel_for backends for TBB and OpenMP application-driven shims.
Refer to related PR and documentation.
Describe the feature and motivation
core module is the cornerstone of OpenCV. It implements basic functionality and so it's used in any OpenCV-based application. Therefore it makes sense to clean it up in OpenCV 5.0 in order to reduce footprint as much as possible. Sometimes this footprint is not just about the consumed space, but also about the compile time overhead.
Here are the suggested items (these are not all the changes proposed for core module in OpenCV 5, a part of them):
Additional context
No response
The text was updated successfully, but these errors were encountered: