我已经模糊好图像了,为什么会输出原灰度值
  • 板块题目总版
  • 楼主lee_0730
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/6/22 17:36
  • 上次更新2024/6/22 20:46:09
查看原帖
我已经模糊好图像了,为什么会输出原灰度值
1353691
lee_0730楼主2024/6/22 17:36

rt 这是代码:

#include<bits/stdc++.h>
using namespace std;
struct point{
	char hex[2];
}picture2[105][105];
int hex_to_dec(int i,int j){
	int dec=0;
	if(picture2[i][j].hex[0]=='A'){
		dec+=10;
	}else if(picture2[i][j].hex[0]=='B'){
		dec+=11;
	}else if(picture2[i][j].hex[0]=='C'){
		dec+=12;
	}else if(picture2[i][j].hex[0]=='D'){
		dec+=13;
	}else if(picture2[i][j].hex[0]=='E'){
		dec+=14;
	}else if(picture2[i][j].hex[0]=='F'){
		dec+=15;
	}else{
		dec+=(picture2[i][j].hex[0]-'0');
	}
	if(picture2[i][j].hex[1]=='A'){
		dec+=(10*16);
	}else if(picture2[i][j].hex[1]=='B'){
		dec+=(11*16);
	}else if(picture2[i][j].hex[1]=='C'){
		dec+=(12*16);
	}else if(picture2[i][j].hex[1]=='D'){
		dec+=(13*16);
	}else if(picture2[i][j].hex[1]=='E'){
		dec+=(14*16);
	}else if(picture2[i][j].hex[1]=='F'){
		dec+=(15*16);
	}else{
		dec+=((picture2[i][j].hex[1]-'0')*16);
	}
	return dec;
}
string picture[100];
int dec_img[105][105],pic[105][105];
int main(){
	int n,m;
	cin>>n;
	m=n;
	for(int i=0;i<n;i++){
		cin>>picture[i];
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			picture2[i][j].hex[0]=picture[i][2*j];
			picture2[i][j].hex[1]=picture[i][2*j+1];
			dec_img[i][j]=pic[i][j]=hex_to_dec(i,j);
		}
	}
	for(int i=1;i<n-1;i++){
		for(int j=1;j<m-1;j++){
			dec_img[i][j]=(pic[i][j]+pic[i-1][j]+pic[i+1][j]+pic[i][j-1]+pic[i][j+1])/5.0;
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cout<<round(dec_img[i][j])<<" ";
		}
		cout<<endl;
	}
	return 0;
}
/*
5
AB00FFAC97
BC11FFAB08
6700BFEC56
5081CFAB04
103DFFAC01

171 0 255 172 151
188 92 177 168 8
103 88 177 171 86
80 95 190 158 4
16 61 255 172 1

186 0 255 202 121
203 95 192 195 128
118 82 192 186 101
5 98 193 182 64
1 211 255 202 16
*/

第一段注释是输入样例

第二行是输出样例

第三行是我的输出

求解AWA蒟蒻一个请多指教

2024/6/22 17:36
加载中...