0

我正在尝试将 3x3 行排序为 9x1 的方法。

所以我有以下几点:

在此处输入图像描述

我想结束这个:

在此处输入图像描述

到目前为止,这就是我最终要做的事情:

            Rect roi(y-1,x-1,kernel,kernel);
            Mat image_roi = image(roi);
            Mat image_sort(kernel, kernel, CV_8U);
            cv::sort(image_roi, image_sort, CV_SORT_ASCENDING+CV_SORT_EVERY_ROW);

该代码不起作用,目前我在“排序”后的 image_sort 中找不到任何数据。

4

1 回答 1

4

确定你有单通道灰度图像?尝试:

cv::Mat image_sort = cv::Mat::zeros(rect.height, rect.width, rect.type()); // allocated memory
image(roi).copyTo(image_sort); // copy data in image_sorted
std::sort(image_sort.data, image_sort.dataend); // call std::sort
cv::Mat vectorized = image_sort.reshape(1, 1); // reshaped your WxH matrix into a 1x(W*H) vector.
于 2012-10-25T12:43:16.653 回答