Код: Выделить всё
// Get coronal section slice
std::vector get_coronal() {
std::vector coronal_section(slice_height, cv::Mat(slice_num, slice_width, CV_16UC1, cv::Scalar(0)));
for (int i = 0; i < slice_height; i++)
{
for (int k = 0; k < slice_num; k++)
{
pixel_array[k].row(i).copyTo(coronal_section[i].row(k));
}
}
return coronal_section;
}
// Get sagittal section slice
std::vector get_sagittal() {
std::vector sagittal_section(slice_width, cv::Mat(slice_height, slice_num, CV_16UC1, cv::Scalar(0)));
for (int j = 0; j < slice_width; j++)
{
for (int k = 0; k < slice_num; k++)
{
pixel_array[k].col(j).copyTo(sagittal_section[j].col(k));
}
}
return sagittal_section;
}
//get transverse section slice
std::vector get_transverse()
{
return pixel_array;
}
после изменения двух изменений изображение отображается правильно.
но я не знаю, почему первый не работает.
Код: Выделить всё
std::vector get_coronal() {
std::vector coronal_section(slice_width);
for (int i = 0; i < slice_width; i++) {
cv::Mat slice(slice_num, slice_height, CV_16UC1);
for (int j = 0; j < slice_num; j++) {
pixel_array[j].row(i).copyTo(slice.row(j));
}
coronal_section[i] = slice;
}
return coronal_section;
}
std::vector get_sagittal() {
std::vector sagittal_section(slice_height);
for (int i = 0; i < slice_height; i++) {
cv::Mat slice(slice_width,slice_num , CV_16UC1);
for (int j = 0; j < slice_num; j++) {
pixel_array[j].col(i).copyTo(slice.col(j));
}
sagittal_section[i] = slice;
}
return sagittal_section;
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ctor-of-25
Мобильная версия