Skip to content

Commit 5e759d2

Browse files
Merge pull request #335 from justadudewhohacks/#331
fixed border value for warping methods
2 parents 136b1b0 + 038c580 commit 5e759d2

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

cc/core/MatImgprocBindings.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ namespace MatImgprocBindings {
296296
cv::Size2d size;
297297
int flags = cv::INTER_LINEAR;
298298
int borderMode = cv::BORDER_CONSTANT;
299+
cv::Vec3d borderValue = cv::Vec3d();
299300

300301
cv::Mat warpedMat;
301302

@@ -311,7 +312,8 @@ namespace MatImgprocBindings {
311312
return (
312313
Size::Converter::optArg(1, &size, info) ||
313314
IntConverter::optArg(2, &flags, info) ||
314-
IntConverter::optArg(3, &borderMode, info)
315+
IntConverter::optArg(3, &borderMode, info) ||
316+
Vec3::Converter::optArg(4, &borderValue, info)
315317
);
316318
}
317319

@@ -324,7 +326,8 @@ namespace MatImgprocBindings {
324326
return (
325327
Size::Converter::optProp(&size, "size", opts) ||
326328
IntConverter::optProp(&flags, "flags", opts) ||
327-
IntConverter::optProp(&borderMode, "borderMode", opts)
329+
IntConverter::optProp(&borderMode, "borderMode", opts) ||
330+
Vec3::Converter::optProp(&borderValue, "borderValue", opts)
328331
);
329332
}
330333
};
@@ -334,7 +337,7 @@ namespace MatImgprocBindings {
334337
}
335338

336339
std::string executeCatchCvExceptionWorker() {
337-
cv::warpAffine(mat, warpedMat, transformationMatrix, (cv::Size)size, flags, borderMode, cv::Scalar());
340+
cv::warpAffine(mat, warpedMat, transformationMatrix, (cv::Size)size, flags, borderMode, borderValue);
338341
return "";
339342
}
340343
};
@@ -344,7 +347,7 @@ namespace MatImgprocBindings {
344347
}
345348

346349
std::string executeCatchCvExceptionWorker() {
347-
cv::warpPerspective(mat, warpedMat, transformationMatrix, (cv::Size)size, flags, borderMode, cv::Scalar());
350+
cv::warpPerspective(mat, warpedMat, transformationMatrix, (cv::Size)size, flags, borderMode, borderValue);
348351
return "";
349352
}
350353
};

lib/typings/Mat.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -292,10 +292,10 @@ export class Mat {
292292
triangulatePointsAsync(projPoints1: Point2[], projPoints2: Point2[]): Promise<Mat>;
293293
validateDisparity(cost: Mat, minDisparity: number, numberOfDisparities: number, disp12MaxDisp?: number): void;
294294
validateDisparityAsync(cost: Mat, minDisparity: number, numberOfDisparities: number, disp12MaxDisp?: number): Promise<void>;
295-
warpAffine(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number): Mat;
296-
warpAffineAsync(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number): Promise<Mat>;
297-
warpPerspective(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number): Mat;
298-
warpPerspectiveAsync(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number): Promise<Mat>;
295+
warpAffine(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number, borderValue?: Vec3): Mat;
296+
warpAffineAsync(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number, borderValue?: Vec3): Promise<Mat>;
297+
warpPerspective(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number, borderValue?: Vec3): Mat;
298+
warpPerspectiveAsync(transforMationMatrix: Mat, size?: Size, flags?: number, borderMode?: number, borderValue?: Vec3): Promise<Mat>;
299299
watershed(markers: Mat): Mat;
300300
watershedAsync(markers: Mat): Promise<Mat>;
301301

test/tests/core/Mat/imgprocTests.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@ module.exports = (getTestImg) => {
241241
getOptionalArgsMap: () => ([
242242
['size', size],
243243
['flags', cv.INTER_CUBIC],
244-
['borderMode', cv.BORDER_REFLECT]
244+
['borderMode', cv.BORDER_CONSTANT],
245+
['borderValue', new cv.Vec(255, 255, 255)]
245246
]),
246247
expectOutput
247248
});
@@ -256,7 +257,8 @@ module.exports = (getTestImg) => {
256257
getOptionalArgsMap: () => ([
257258
['size', size],
258259
['flags', cv.INTER_CUBIC],
259-
['borderMode', cv.BORDER_REFLECT]
260+
['borderMode', cv.BORDER_CONSTANT],
261+
['borderValue', new cv.Vec(255, 255, 255)]
260262
]),
261263
expectOutput
262264
});
@@ -1495,7 +1497,7 @@ module.exports = (getTestImg) => {
14951497
20, 0.04, 1
14961498
]),
14971499
getOptionalArgsMap: () => ([
1498-
['mask', new cv.Mat(512,512,cv.CV_U8)],
1500+
['mask', new cv.Mat(512, 512, cv.CV_U8)],
14991501
['blockSize', 3],
15001502
['gradientSize', 3],
15011503
['useHarrisDetector', false],
@@ -1520,7 +1522,7 @@ module.exports = (getTestImg) => {
15201522
['mask', new cv.Mat(512, 512, cv.CV_U8)],
15211523
['blockSize', 3],
15221524
['useHarrisDetector', false],
1523-
['harrisK', 0.04 ]
1525+
['harrisK', 0.04]
15241526
]),
15251527
expectOutput: (out) => {
15261528
expect(out).to.be.instanceOf(Array);

0 commit comments

Comments
 (0)