2015-12-17 18:25:47 +08:00
|
|
|
#include "impl.hpp"
|
2015-12-03 19:43:37 +08:00
|
|
|
|
|
|
|
int slow_and8u(const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height)
|
|
|
|
{
|
|
|
|
for(; height--; src1 = src1 + step1, src2 = src2 + step2, dst = dst + step)
|
|
|
|
for(int x = 0 ; x < width; x++ )
|
|
|
|
dst[x] = src1[x] & src2[x];
|
2015-12-15 20:55:43 +08:00
|
|
|
return CV_HAL_ERROR_OK;
|
2015-12-03 19:43:37 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
int slow_or8u(const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height)
|
|
|
|
{
|
|
|
|
for(; height--; src1 = src1 + step1, src2 = src2 + step2, dst = dst + step)
|
|
|
|
for(int x = 0 ; x < width; x++ )
|
|
|
|
dst[x] = src1[x] | src2[x];
|
2015-12-15 20:55:43 +08:00
|
|
|
return CV_HAL_ERROR_OK;
|
2015-12-03 19:43:37 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
int slow_xor8u(const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height)
|
|
|
|
{
|
|
|
|
for(; height--; src1 = src1 + step1, src2 = src2 + step2, dst = dst + step)
|
|
|
|
for(int x = 0 ; x < width; x++ )
|
|
|
|
dst[x] = src1[x] ^ src2[x];
|
2015-12-15 20:55:43 +08:00
|
|
|
return CV_HAL_ERROR_OK;
|
2015-12-03 19:43:37 +08:00
|
|
|
}
|
|
|
|
|
2015-12-17 18:25:47 +08:00
|
|
|
int slow_not8u(const uchar* src1, size_t step1, uchar* dst, size_t step, int width, int height)
|
2015-12-03 19:43:37 +08:00
|
|
|
{
|
2015-12-17 18:25:47 +08:00
|
|
|
for(; height--; src1 = src1 + step1, dst = dst + step)
|
2015-12-03 19:43:37 +08:00
|
|
|
for(int x = 0 ; x < width; x++ )
|
|
|
|
dst[x] = ~src1[x];
|
2015-12-15 20:55:43 +08:00
|
|
|
return CV_HAL_ERROR_OK;
|
2015-12-03 19:43:37 +08:00
|
|
|
}
|