Itseez/opencv — pull request #2117 by kazuki-ma (2014-01-06 18:00:07+00:00)
Title: Implimentation "cv::Mat::forEach"

I propose forEach method for cv::Mat and cv::Mat_.
This is solution for the overhead of MatIterator_<_Tp>.

I runs a test that micro opecode runs all over the pixel of cv::Mat_<cv::Point3_>.
And this implementation 40% faster than the simple pointer, 80% faster than iterator.
With OpenMP, 70% faster than simple pointer, 95% faster than iterator (Core i7 920 with TH).

Above all, code is more readable.

My test code is here.
https://gist.github.com/kazuki-ma/8285876

Thanks.