// affine.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" #include "pgmlib.h" #include #include #define PI 3.141592 void affine_size(int n,int n2); void affine_rot(int n,int n2); void affine_shift(int n,int n2); int main() { load_image(0,""); affine_shift(0,1); //affine_size(0,1); //affine_rot(0,1); save_image(1,""); return 0; } void affine_shift(int n,int n2) { int shift_x, shift_y; int size_x, size_y; int out_pos_x,out_pos_y; printf("x方向の移動量を入力してください.\n"); scanf("%d",&shift_x); printf("y方向の移動量を入力してください.\n"); scanf("%d",&shift_y); size_x = (int)(width[n]); size_y = (int)(height[n]); width[n2] = size_x; height[n2] = size_y; printf("出力画像サイズ:%d, %d\n", size_x,size_y); for(int j=0;j= 0 && out_pos_x < width[n] && out_pos_y >= 0 && out_pos_y < height[n]){ image[n2][i][j] = image[n][out_pos_x][out_pos_y]; } } } printf("移動しました"); } void affine_size(int n,int n2) { double ratio_x, ratio_y; int size_x, size_y; double pos_x,pos_y; int out_pos_x,out_pos_y; printf("x方向の拡大/縮小率を入力してください.\n"); scanf("%lf",&ratio_x); printf("y方向の拡大/縮小率を入力してください.\n"); scanf("%lf",&ratio_y); size_x = (int)(ratio_x*(double)width[n]+0.5); size_y = (int)(ratio_y*(double)height[n]+0.5); width[n2] = size_x; height[n2] = size_y; printf("出力画像サイズ:%d, %d\n", size_x,size_y); for(int j=0;j= 0 && out_pos_x < width[n] && out_pos_y >= 0 && out_pos_y < height[n]){ image[n2][i][j] = image[n][out_pos_x][out_pos_y]; } } } printf("サイズを変更しました.\n"); } void affine_rot(int n,int n2) { double ratio_x, ratio_y; int size_x, size_y; double deg; double pos_x, pos_y; int out_pos_x,out_pos_y; printf("回転角度を入力してください.\n"); scanf("%lf",°); size_x = (int)(width[n]); size_y = (int)(height[n]); width[n2] = size_x; height[n2] = size_y; printf("出力画像サイズ:%d, %d\n", size_x,size_y); for(int j=0;j= 0 && out_pos_x < width[n] && out_pos_y >= 0 && out_pos_y < height[n]){ image[n2][i][j] = image[n][out_pos_x][out_pos_y]; } } } printf("回転しました"); }