diff --git a/intrinsiccv/include/intrinsiccv/morphology/workspace.h b/intrinsiccv/include/intrinsiccv/morphology/workspace.h index 460fa7fe0f6081006fc8b788b7ec7565b9a2ca3d..7ec6f579c0110bfef01669e15820935a072ffacb 100644 --- a/intrinsiccv/include/intrinsiccv/morphology/workspace.h +++ b/intrinsiccv/include/intrinsiccv/morphology/workspace.h @@ -341,7 +341,9 @@ class MorphologyWorkspace final { void copy_data(Rows src_rows, Rows dst_rows, size_t length) INTRINSICCV_STREAMING_COMPATIBLE { #if INTRINSICCV_TARGET_SME2 - Rectangle rect{length, static_cast(1)}; + // 'sve2::apply_operation_by_rows' handles it as being 1-channel + // so width must be multiplied in order to copy all the data + Rectangle rect{length * src_rows.channels(), std::size_t{1}}; CopyOperation operation; sve2::apply_operation_by_rows(operation, rect, src_rows, dst_rows); #else