我试图找到一种将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中的“排序”后找不到任何数据。
答案 0 :(得分: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.