mirror of
https://github.com/opencv/opencv.git
synced 2024-11-26 04:00:30 +08:00
fixed some warnings on Windows and added debug messages
This commit is contained in:
parent
4116cbe2c0
commit
ce5e9a71b5
@ -43,6 +43,7 @@
|
||||
#include "precomp.hpp"
|
||||
|
||||
#include <limits>
|
||||
#include <iostream>
|
||||
|
||||
namespace cv
|
||||
{
|
||||
@ -310,7 +311,29 @@ static void Bayer2Gray_( const Mat& srcmat, Mat& dstmat, int code )
|
||||
dst0[i] = dst0[i + (size.height-1)*dst_step] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template <typename T>
|
||||
struct Alpha
|
||||
{
|
||||
static T value() { return std::numeric_limits<T>::max(); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct Alpha<float>
|
||||
{
|
||||
static float value() { return 1.0f; }
|
||||
};
|
||||
|
||||
static cv::Mutex m;
|
||||
|
||||
template <typename T>
|
||||
static void print(const T& value)
|
||||
{
|
||||
m.lock();
|
||||
std::cout << value << " ";
|
||||
m.unlock();
|
||||
}
|
||||
|
||||
template <typename T, typename SIMDInterpolator>
|
||||
class Bayer2RGB_Invoker :
|
||||
public ParallelLoopBody
|
||||
@ -319,11 +342,14 @@ public:
|
||||
Bayer2RGB_Invoker(const Mat& _srcmat, Mat& _dstmat, int _start_with_green, int _blue, const Size& _size) :
|
||||
srcmat(_srcmat), dstmat(_dstmat), Start_with_green(_start_with_green), Blue(_blue), size(_size)
|
||||
{
|
||||
print("Bayer2RGB_Invoker()\n");
|
||||
}
|
||||
|
||||
virtual void operator() (const Range& range) const
|
||||
{
|
||||
SIMDInterpolator vecOp;
|
||||
T alpha = Alpha<T>::value();
|
||||
|
||||
const T* bayer0 = (const T*)srcmat.data;
|
||||
int bayer_step = (int)(srcmat.step/sizeof(T));
|
||||
|
||||
@ -331,7 +357,6 @@ public:
|
||||
int dst_step = (int)(dstmat.step/sizeof(T));
|
||||
|
||||
int blue = Blue, start_with_green = Start_with_green;
|
||||
int alpha = std::numeric_limits<T>::max();
|
||||
if (range.start % 2)
|
||||
{
|
||||
blue = -blue;
|
||||
@ -344,6 +369,8 @@ public:
|
||||
|
||||
dst0 += dst_step * range.start;
|
||||
bayer0 += bayer_step * range.start;
|
||||
|
||||
print(range.start);
|
||||
|
||||
for (int i = range.start; i < range.end; bayer0 += bayer_step, dst0 += dst_step, ++i )
|
||||
{
|
||||
@ -525,6 +552,9 @@ public:
|
||||
Mat dstmat;
|
||||
int Start_with_green, Blue;
|
||||
const Size size;
|
||||
|
||||
const Bayer2RGB_Invoker& operator= (const Bayer2RGB_Invoker&);
|
||||
Bayer2RGB_Invoker(const Bayer2RGB_Invoker&);
|
||||
};
|
||||
|
||||
template<typename T, class SIMDInterpolator>
|
||||
@ -542,7 +572,9 @@ static void Bayer2RGB_( const Mat& srcmat, Mat& dstmat, int code )
|
||||
Range range(0, size.height);
|
||||
Bayer2RGB_Invoker<T, SIMDInterpolator> invoker(srcmat, dstmat, start_with_green, blue, size);
|
||||
|
||||
print("before parallel_for_\n");
|
||||
parallel_for_(range, invoker);
|
||||
print("after parallel_for_\n");
|
||||
|
||||
// filling the first and the last rows
|
||||
size = dstmat.size();
|
||||
|
Loading…
Reference in New Issue
Block a user