diff --git a/src/OpenCV_ImagesSupport.jl b/src/OpenCV_ImagesSupport.jl index d3ff1e4..49833ab 100644 --- a/src/OpenCV_ImagesSupport.jl +++ b/src/OpenCV_ImagesSupport.jl @@ -34,7 +34,7 @@ function convertToMat(image) if (cd == 3) # color (RGB) image for j = 1:Base.size(img,2) # index row first (Mat is row-major order) for k =1:Base.size(img,1) # index column second - colorvec = tostdvec([float(img[k,j,1].i),float(img[k,j,2].i),float(img[k,j,3].i)]) + colorvec = [float(img[k,j,1].i),float(img[k,j,2].i),float(img[k,j,3].i)] pixset(mat, k-1, j-1, colorvec) # -1 to have 0-indexing per C++ end end diff --git a/src/OpenCV_Mat.jl b/src/OpenCV_Mat.jl index 3ae4d47..ac93964 100644 --- a/src/OpenCV_Mat.jl +++ b/src/OpenCV_Mat.jl @@ -181,6 +181,7 @@ end function pixset(img, row::Int, col::Int, value) (row < 0 || col < 0 || row > rows(img) || col > cols(img)) ? throw(BoundsError()) : nothing + cppvec = tostdvec(value) # Grayscale and binary images (value:: double) if (cvtypeval(img) == CV_8UC1) @cxx at_u(img, row, col, value); @@ -194,19 +195,19 @@ function pixset(img, row::Int, col::Int, value) @cxx at_d(img, row, col, value); # RGB images (value:: std::vector) elseif (cvtypeval(img) == CV_8SC3) - @cxx at_vc(img, row, col, value); + @cxx at_vc(img, row, col, cppvec); elseif (cvtypeval(img) == CV_8UC3) - @cxx at_v3b(img, row, col, value); + @cxx at_v3b(img, row, col, cppvec); elseif (cvtypeval(img) == CV_16SC3) - @cxx at_v3s(img, row, col, value); + @cxx at_v3s(img, row, col, cppvec); elseif (cvtypeval(img) == CV_16UC3) - @cxx at_v3us(img, row, col, value); + @cxx at_v3us(img, row, col, cppvec); elseif (cvtypeval(img) == CV_32SC3) - @cxx at_v3i(img, row, col, value); + @cxx at_v3i(img, row, col, cppvec); elseif (cvtypeval(img) == CV_32FC3) - @cxx at_v3f(img, row, col, value); + @cxx at_v3f(img, row, col, cppvec); elseif (cvtypeval(img) == CV_64FC3) - @cxx at_v3d(img, row, col, value); + @cxx at_v3d(img, row, col, cppvec); else throw(ArgumentError("Image format not recognized!")) end end