資源簡介
2019年研究生復試 測繪遙感信息工程國家重點實驗室 實驗操作
使用C++或Java,在已經形成的框架中調試和編制程序,完成均值濾波算法。
均值濾波是典型的線性濾波算法,它是指在圖像上對目標像素給一個模板,該模板包括了以目標像素為中心的周圍像素,用模板中的全體像素的平均值來代替原來像素值。

代碼片段和文件信息
#include?“stdafx.h“
//請根據(jù)正確的路徑修改下列宏,保證文件正確讀取
#define?OUTFILE3x3?“D:\\OpOutputC3.txt“
#define?OUTFILE5x5?“D:\\OpOutputC5.txt“
//如需子函數(shù),請在此處定義
/*================================================================================
3x3均值濾波:
對輸入的影像進行3x3均值濾波。
該函數(shù)結果不正確,請修改正確。
輸入:
影像arrImage,整型數(shù)組
影像寬nCol,像素個數(shù)
影像高nRow,像素個數(shù)
輸出:
濾波完成的影像arrImage
返回:無
==================================================================================*/
void?Blur3x3(int*?arrImage?const?int?nCol?const?int?nRow)
{
//開辟臨時空間
int?*arrNewImage?=?new?int[nCol?*?nRow];
//均值濾波計算
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
double?sum?=?0.0;
sum?+=?arrImage[(i?-?1)*nCol?+?j?-?1];
sum?+=?arrImage[(i?-?1)*nCol?+?j];
sum?+=?arrImage[(i?-?1)*nCol?+?j?+?1];
sum?+=?arrImage[i*nCol?+?j?-?1];
sum?+=?arrImage[i*nCol?+?j];
sum?+=?arrImage[i*nCol?+?j?+?1];
sum?+=?arrImage[(i?+?1)*nCol?+?j?-?1];
sum?+=?arrImage[(i?+?1)*nCol?+?j];
sum?+=?arrImage[(i?+?1)*nCol?+?j?+?1];
arrNewImage[i*nCol?+?j]?=?int(sum?/?9?+?0.5);
}
}
//將計算結果復制回arrImage并清理臨時空間
for?(int?i?=?0;?i? for?(int?j?=?0;?j? arrImage[i*nCol?+?j]?=?arrNewImage[i*nCol?+?j];
delete?arrNewImage;
return;
}
/*================================================================================
NxN均值濾波:
對輸入的影像進行NxN均值濾波。
該函數(shù)功能未實現(xiàn),請補全。
輸入:
影像arrImage,整型數(shù)組
影像寬nCol,像素個數(shù)
影像高nRow,像素個數(shù)
濾波窗口尺寸nN,奇數(shù)
輸出:
濾波完成的影像arrImage
返回:無
==================================================================================*/
void?BlurNxN(int*?arrImage?const?int?nCol?const?int?nRow?const?int?nN)
{
//開辟臨時空間
int?*arrNewImage?=?new?int[nCol?*?nRow];
//當前實現(xiàn)僅僅是數(shù)據(jù)復制,請修改補全,完成NxN均值濾波
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
arrNewImage[i*nCol?+?j]?=?arrImage[i*nCol?+?j];
}
}
//將計算結果復制回arrImage并清理臨時空間
for?(int?i?=?0;?i? for?(int?j?=?0;?j? arrImage[i*nCol?+?j]?=?arrNewImage[i*nCol?+?j];
delete?arrNewImage;
return;
}
//=============答題分割線===========此線以后修改的修改不作為答題內容==================================================
void?Output(const?char?*fileName?const?int?*arrImage?const?int?nCol?const?int?nRow)
{
FILE?*fp?=?fopen(fileName?“w“);
for?(int?i?=?0;?i? {
fprintf(fp?“%d“?arrImage[i*nCol]);
for?(int?j?=?1;?j? fprintf(fp?“%d“?arrImage[i*nCol?+?j]);
fprintf(fp?“\n“);
}
fclose(fp);
}
int?main()
{
//初始化環(huán)境
int?arrImage[]?=?{
0?255?0?255?0?255?0?255
255?0?255?0?255?0?255?0
0?255?0?255?0?255?0?255
255?0?255?0?255?0?255?0
0?255?0?255?0?255?0?255
255?0?255?0?255?0?255?0
0?255?0?255?0?255?0?255
255?0?255?0?255?0?255?0
};
int?nCol?=?8?nRow?=?8;
//3x3均值濾波
Blur3x3(arrImage?nCol?nRow);
Output(OUTFILE3x3?arrImage?nCol?nRow);
//5x5均值濾波
BlurNxN(arrImage?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????36834??2019-03-12?19:30??試題.docx
?????目錄???????????0??2019-03-12?19:16??1_CPP?Project\
?????目錄???????????0??2019-03-12?19:16??1_CPP?Project\OPTest\
?????文件????????3373??2019-03-12?19:15??1_CPP?Project\OPTest\OPTest.cpp
?????文件????????8073??2019-03-11?15:24??1_CPP?Project\OPTest\OPTest.vcxproj
?????文件????????1333??2018-03-08?18:00??1_CPP?Project\OPTest\OPTest.vcxproj.filters
?????文件????????1708??2018-03-08?18:00??1_CPP?Project\OPTest\ReadMe.txt
?????文件?????????293??2018-03-08?18:00??1_CPP?Project\OPTest\stdafx.cpp
?????文件?????????320??2018-03-08?18:00??1_CPP?Project\OPTest\stdafx.h
?????文件?????????314??2018-03-08?18:00??1_CPP?Project\OPTest\targetver.h
?????文件????????1300??2018-03-08?18:00??1_CPP?Project\OPTest.sln
?????文件?????2363392??2019-03-12?19:15??1_CPP?Project\OPTest.VC.db
?????目錄???????????0??2019-03-12?19:13??2_Java?Project\
?????目錄???????????0??2019-03-12?19:13??2_Java?Project\OpTest\
?????文件?????????301??2018-03-08?12:19??2_Java?Project\OpTest\.classpath
?????文件?????????382??2018-03-08?12:19??2_Java?Project\OpTest\.project
?????目錄???????????0??2019-03-12?19:13??2_Java?Project\OpTest\.settings\
?????文件?????????598??2018-03-08?12:19??2_Java?Project\OpTest\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2019-03-12?19:13??2_Java?Project\OpTest\bin\
?????文件????????2885??2019-03-12?19:12??2_Java?Project\OpTest\bin\StartOp.class
?????目錄???????????0??2019-03-12?19:13??2_Java?Project\OpTest\src\
?????文件????????3840??2019-03-12?19:12??2_Java?Project\OpTest\src\StartOp.java
評論
共有 條評論