Моя конечная задача лаборатории - обрезать части изображения, вставляя обрезанное изображение в оригинальное назад, вращая и изменяя его размер.Обрезка/вставка в двумерном массиве изображений - проблемы с распределением памяти
У нас есть изображение как 2D-массив в txt-файле, а Matlab преобразует текстовые файлы в файлы изображений/изображений в txts, поэтому мы можем видеть наши результаты.
С моим кодом, когда я обрезаю квадрат (image.extract_sub_image(0,0,100,100);
), никаких проблем, но он вставляет обрезанное изображение в противоположные координаты. Я не знаю почему. Также, когда я обрезаю прямоугольник (image.extract_sub_image(0,0,100,50);
), программа выйдет из строя. Также не знаю, почему :(
PS:
чтение, запись, функции get_dimensions задаются prof.They постоянны, и файл заголовка также дается проф, **p2matr2D
была его идея, и Я не могу изменить его
Мой код:. http://codepad.org/F0mfR7dN
goldhill.txt файл: http://codepad.org/jfbeKLII
Если я не ошибаюсь, по х, у системы координат х должны быть колонны и у ш ould be rows, и это то, что я имею в виду для противоположной вставки: http://i.imgur.com/wgYsj.png, зеленый ящик - это то, что я хочу, красная коробка - это то, что выходит ...
Первые 2 значения в текстовом файле определяют размеры изображения, это как профессор организовал свой скрипт Matlab и код на C++.
Я был бы рад вашим советам и комментариям, чтобы решить проблемы. Я знаю, что код длинный, но я думаю, что мне нужно было вставить все, чтобы объяснить, с чем я столкнулся. Проблема должна заключаться в функциях CCTOR, = op, extract или insert.
@Anarkie - вам нужно нажать на галочку рядом с ответом - после этого вы увидите зеленую галочку рядом с ответом – Attila
@Anarkie - когда вы говорите «вставляет обрезанное изображение в противоположные координаты», вы означает, что он посеял из неправильных координат или вы имеете в виду операцию вставки ('extract_sub_image()' только создает новую, не вставляет) – Attila
@Anarkie: Woops, моя ошибка. Я сказал стрелки, но я имел в виду * галочку *. –