Создайте конечное изображение, высота которого является разницей в радиусах, а ширина - длиной периметра в среднем радиусе (это обеспечивает квадратные пиксели вдоль среднего ar c).
Отсканируйте это изображение и для каждого пикселя преобразуйте координаты (угол, радиус) из декартовой в полярную со смещением в центр области интереса. Это даст вам соответствующий пиксель в исходном изображении, которое вы копируете в пункт назначения. Обязательно масштабируйте угол и радиус, чтобы соответствовать предельным значениям целевого изображения краям области интереса.
Поскольку исходные координаты не будут целочисленными, усечение и простое копирование исходного пикселя обеспечивает так называемую повторную выборку ближайших соседей. , который показывает видимые артефакты. Вы можете сгладить их, рассматривая четыре соседних пикселя и билинейно интерполируя между ними с помощью дробных частей координат.
Вы можете даже go для интерполяции Bicubi c, используя шестнадцать соседей. Но по моему опыту, прирост качества не так заметен.