mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 22:00:25 +08:00
Open Source Computer Vision Library
f351653589
* LineVirtualIterator Proposal of LineVirtualIterator, an alternative to "LineIterator not attached to any mat". This is basically the same implementation, replacing the address difference by a single "offset" variable. elemsize becomes irrelevant and considered to be 1. "step" is thus equal to size.width since no stride is expected. * Update drawing.cpp fixed warning * improvement of LineVirtualIterator instead of being too conservative, the new implementation gets rid of "offset/step" and only keeps a "Point currentPos" up to date. left_to_right is renamed to forceLeftToRight as suggested (even for the old LineIterator) assert() replaced by CV_Assert() (even for the old LineIterator) * fixed implementation +fixed last commit so that LineVirtualIterator gives at least the same results as LineIterator +added a new constructor that does not require any Size, so that no clipping is done and iteration occurs from pt1 to pt2. This is done by adding a spatial offset to pt1 and pt2 so that the same implementation is used, the size being in that case the spatial size between pt1 and pt2 * Update imgproc.hpp fixed warnings * Update drawing.cpp fixed whitespace * Update drawing.cpp trailing whitespace * Update imgproc.hpp +added a new constructor that takes a Rect rather than a Size. It computes the line pt1->pt2 that clips that rect. Yet again, this is still based on the same implementation, thanks to the Size and the currentPosOffset that can artifically consider the origin of the rect at (0,0) * revert changes revert changes on original LineIterator implementation, that will be superseded by the new LineVirtualIterator anyway * added test of LineVirtualIterator * More tests * refactoring Use C++11 chained constructors Improved code style * improve test Added offset as random test data. * fixed order of initialization * merged LineIterator and VirtualLineIterator * merged LineIterator & VirtualLineIterator * merged LineIterator & VirtualLineIterator * merged LineIterator & VirtualLineIterator * made LineIterator::operator ++() more efficient added one perfectly predictable check; in theory, since ptmode is set in the end of the constructor in the header file, the compiler can figure out that it's always true/false and eliminate the check from the inline `LineIterator::operator++()` completely * optimized Line() function in the most common case (CV_8UC3) eliminated the check from the loop Co-authored-by: Vadim Pisarevsky <vadim.pisarevsky@gmail.com> |
||
---|---|---|
.github | ||
3rdparty | ||
apps | ||
cmake | ||
data | ||
doc | ||
include | ||
modules | ||
platforms | ||
samples | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
SECURITY.md |
OpenCV: Open Source Computer Vision Library
Resources
- Homepage: https://opencv.org
- Docs: https://docs.opencv.org/master/
- Q&A forum: http://answers.opencv.org
- Issue tracking: https://github.com/opencv/opencv/issues
Contributing
Please read the contribution guidelines before starting work on a pull request.
Summary of the guidelines:
- One pull request per issue;
- Choose the right base branch;
- Include tests and documentation;
- Clean up "oops" commits before submitting;
- Follow the coding style guide.