C言語の画像処理

タイトル説明

暁明は最近、画像処理のファンになりました・チューリングTanggulasiの生まれ変わりであると主張、今日のチューリング賞暁明を取るためにペースを妨げるいくつかの問題があり、暁明は、あなたが彼を助けることができると思います。

我々は、画像をピクセルのマトリクスで表現されていることを知っています。各色の画像ピクセルは3つの8ビットの符号なし整数で表され、グレースケール画像の各画素は8ビットなし(0〜255)の記号で表されます。次の図に示すグレースケール画像選択された領域(画素値のアレイは8ビットで符号なしの数である)に、図画素マトリクス相当の二次元アレイです。

ここに画像を挿入説明

あなただけちょうど彼は、画素の行列を解決するためにあなたを必要とするすべての後に、画像をグレースケール洗礼孟新しいコンピュータの知識、暁明を受け入れることを学んだ、スマート暁明それは知識を消化するのは簡単です、あなたのソリューションは、カラー画像に転送されます。

ボブは、編集画像にソフトウェアを使用する際にいくつかの機能を実装したかったです。今日、スティーブは彼はいくつかの非常に便利な機能を達成するのを助けるためにあなたを望んでいます:

  1. 以下に示すように(ミラー反転選択された領域の原画像のレベルを達成するために、図の二次元アレイ対応する画素マトリクス)に示すように、フリップ水平鏡像:
    ここに画像を挿入説明

  2. 選択された領域の図原画像(2次元配列の対応する下に示されるように、抗カラー画像(トランス1,1 0などの抗バイナリ0、それは256進数の画素値とみなされるかもしれない注) )抗色後の画素マトリクスを得ます。

ここに画像を挿入説明

  1. (選択された領域の原画像に90°反時計回りの図の効果回転の画素マトリックスに対応する二次元アレイ)の下に示すように、画像は、°回転反時計回りに90です。
    ここに画像を挿入説明

エントリー

最初の行は、T(T <= 50)整数正を含み、テスト・データ・セットの数を示します。

次に、データのTセット、各グループのデータがあります。

最初の行は、2つの正の整数M、N(中間空間によって分離、1 <M、N <= 100)が含まれ、画像の画素マトリクス、列の数の行を表します。

次に、M個の行があり、各列は、0から255までの各番号範囲をN個の整数を有し、グレースケール画素値を表します。

入力データの各セットの後に空白行です。

輸出

各場合について、対応する出力は、2つの* M + N + 4行を含みます。

第一行動「ケース#tを:」、Tは、データセットの数を表します。

2〜(M + 1)原画像の画素のマトリクスの機能を果たす作用、空間は、各画素値の後に存在します。

第(M + 2)行は空です。

(M + 3)第一〜(2 * M + 2)空間後の各画素値を、元の画像を行いに画素2のマトリクスの機能を働きます。

(2 * M + 3)行は空です。

第(2M+4)~(2M+N+3)行为原图像执行功能3后的像素矩阵,每一个像素值后有一个空格;

第(2*M+N+4)行为空行。

样例输入 Copy

2
2 3
124 95 20
88 65 73

8 5
40 38 54 59 49
55 49 50 83 79
87 90 112 132 131
129 151 142 147 187
167 165 155 163 156
99 95 123 155 151
139 123 161 164 144
157 143 146 175 179

样例输出 Copy

Case #1:
20 95 124
73 65 88

131 160 235
167 190 182

20 73
95 65
124 88

Case #2:
49 59 54 38 40
79 83 50 49 55
131 132 112 90 87
187 147 142 151 129
156 163 155 165 167
151 155 123 95 99
144 164 161 123 139
179 175 146 143 157

215 217 201 196 206
200 206 205 172 176
168 165 143 123 124
126 104 113 108 68
88 90 100 92 99
156 160 132 100 104
116 132 94 91 111
98 112 109 80 76

49 79 131 187 156 151 144 179
59 83 132 147 163 155 164 175
54 50 112 142 155 123 161 146
38 49 90 151 165 95 123 143
40 55 87 129 167 99 139 157

コード

#include<stdio.h>
#include<math.h>

int main()
{
	int i,t,m[50],n[50],j,k,a[50][100][100];
	scanf("%d",&t);
	for(i=0;i<t;i++)
	{
		scanf("%d %d",&m[i],&n[i]);
	
		for(j=0;j<m[i];j++)
		{
			for(k=0;k<n[i];k++)
			{
				scanf("%d",&a[i][j][k]);
			}
		}
	}
		for(i=0;i<t;i++)
		{
			printf("Case #%d:\n",i+1);
			for(j=0;j<m[i];j++)
			{
				for(k=n[i]-1;k>=0;k--)
				{
					printf("%d ",a[i][j][k]);
				}
				printf("\n");
			}
			
			printf("\n");
			
			for(j=0;j<m[i];j++)
			{
				for(k=0;k<n[i];k++)
				{
					printf("%d ",255-a[i][j][k]);
				}
				printf("\n");
			}
			
			printf("\n");
		
			for(j=n[i]-1;j>=0;j--)
			{
				for(k=0;k<m[i];k++)printf("%d ",a[i][k][j]);
					printf("\n");
			}
		
			printf("\n");
	}
}
公開された47元の記事 ウォン称賛29 ビュー1477

おすすめ

転載: blog.csdn.net/Qianzshuo/article/details/103759110