1
0
Fork 0
mirror of https://github.com/ruby-opencv/ruby-opencv synced 2023-03-27 23:22:12 -04:00

fix CvMat#flip

This commit is contained in:
ser1zw 2012-01-14 02:26:29 +09:00
parent d019ffbd14
commit 99679249f1
2 changed files with 18 additions and 8 deletions

View file

@ -1546,16 +1546,19 @@ VALUE
rb_flip_bang(int argc, VALUE *argv, VALUE self)
{
VALUE format;
int mode = 0;
int mode = 1;
if (rb_scan_args(argc, argv, "01", &format) > 0) {
if (rb_to_id(format) == rb_intern("x"))
Check_Type(format, T_SYMBOL);
ID flip_mode = rb_to_id(format);
if (flip_mode == rb_intern("x")) {
mode = 1;
else if (rb_to_id(format) == rb_intern("y"))
}
else if (flip_mode == rb_intern("y")) {
mode = 0;
else if (rb_to_id(format) == rb_intern("xy"))
}
else if (flip_mode == rb_intern("xy")) {
mode = -1;
else
rb_warn("argument may be :x or :y or :xy");
}
}
try {
cvFlip(CVARR(self), NULL, mode);

View file

@ -809,10 +809,17 @@ class TestCvMat < OpenCVTestCase
assert_cvscalar_equal(m0[rj, i], m4[j, i])
assert_cvscalar_equal(m0[rj, ri], m5[j, i])
assert_cvscalar_equal(m0[rj, ri], m6[j, i])
assert_cvscalar_equal(m0[rj, i], m7[j, i])
assert_cvscalar_equal(m0[rj, i], m8[j, i])
assert_cvscalar_equal(m0[j, ri], m7[j, i])
assert_cvscalar_equal(m0[j, ri], m8[j, i])
}
}
assert_raise(TypeError) {
m0.flip(DUMMY_OBJ)
}
assert_raise(TypeError) {
m0.flip!(DUMMY_OBJ)
}
end
def test_split