misc
This commit is contained in:
@ -505,6 +505,26 @@ double normalizeAngle(const double angle) {
|
||||
return angle - k * 360.0;
|
||||
}
|
||||
|
||||
void drawRegion(cv::Mat &img, const HRegion ®ion) {
|
||||
auto *ptr = img.ptr<uchar>();
|
||||
for (const auto &rle : region) {
|
||||
auto *startPtr = ptr + rle.row * img.step + rle.startColumn;
|
||||
for (int i = 0; i < rle.length; i++) {
|
||||
*(startPtr + i) = 255;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void drawRegion(cv::Mat &img, const VRegion ®ion) {
|
||||
auto *ptr = img.ptr<uchar>();
|
||||
for (const auto &rle : region) {
|
||||
auto *startPtr = ptr + rle.startRow * img.step + rle.col;
|
||||
for (int i = 0; i < rle.length; i++) {
|
||||
*(startPtr + i * img.step) = 255;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Model *trainModel(const cv::Mat &src, int level, double startAngle, double spanAngle,
|
||||
double angleStep) {
|
||||
if (src.empty() || src.channels() != 1) {
|
||||
|
||||
20
sum.cpp
20
sum.cpp
@ -60,9 +60,9 @@ inline void computeSumDiff(const cv::v_uint16x8 &start, const cv::v_uint16x8 &en
|
||||
cv::v_int32x4 &diff0, cv::v_int32x4 &diff1) {
|
||||
cv::v_int16x8 sub;
|
||||
{
|
||||
cv::v_int16x8 vStart = cv::v_reinterpret_as_s16(start);
|
||||
cv::v_int16x8 vEnd = cv::v_reinterpret_as_s16(end);
|
||||
sub = cv::v_sub(vEnd, vStart);
|
||||
auto vStart = cv::v_reinterpret_as_s16(start);
|
||||
auto vEnd = cv::v_reinterpret_as_s16(end);
|
||||
sub = cv::v_sub(vEnd, vStart);
|
||||
}
|
||||
|
||||
cv::v_int32x4 val = cv::v_expand_low(sub);
|
||||
@ -138,7 +138,7 @@ void shiftH(const cv::Mat &src, const HRegion &hRegion, int row, cv::Mat &sum, c
|
||||
cv::v_int32x4 diff13 = cv::v_setzero_s32();
|
||||
|
||||
for (const auto &rle : hRegion) {
|
||||
auto *startPtr = srcPtr + (row + rle.row) * src.step + rle.startColumn + i;
|
||||
auto *startPtr = srcPtr + (row + rle.row) * src.step + rle.startColumn + i - 1;
|
||||
auto *endPtr = startPtr + rle.length;
|
||||
|
||||
auto vStart = cv::v_load(startPtr);
|
||||
@ -172,13 +172,13 @@ void shiftH(const cv::Mat &src, const HRegion &hRegion, int row, cv::Mat &sum, c
|
||||
int32_t partSum = 0;
|
||||
int32_t partSqSum = 0;
|
||||
for (const auto &rle : hRegion) {
|
||||
auto *startPtr = srcPtr + (row + rle.row) * src.step + rle.startColumn + i;
|
||||
auto *startPtr = srcPtr + (row + rle.row) * src.step + rle.startColumn + i - 1;
|
||||
auto *endPtr = startPtr + rle.length;
|
||||
|
||||
auto start = *startPtr;
|
||||
auto end = *endPtr;
|
||||
partSum += end - start;
|
||||
partSqSum += end * end - start * start;
|
||||
int32_t start = *startPtr;
|
||||
int32_t end = *endPtr;
|
||||
partSum += end - start;
|
||||
partSqSum += end * end - start * start;
|
||||
}
|
||||
|
||||
auto *sumPtrStart = sumPtr + i;
|
||||
@ -196,7 +196,7 @@ void shiftV(const cv::Mat &src, const VRegion &vRegion, int row, cv::Mat &sum, c
|
||||
int32_t partSum = 0;
|
||||
int32_t partSqSum = 0;
|
||||
for (const auto &rle : vRegion) {
|
||||
auto *startPtr = srcPtr + (row + rle.startRow) * src.step + rle.col;
|
||||
auto *startPtr = srcPtr + (row + rle.startRow - 1) * src.step + rle.col;
|
||||
auto *endPtr = startPtr + rle.length * src.step;
|
||||
|
||||
int32_t start = *startPtr;
|
||||
|
||||
Reference in New Issue
Block a user