@@ -0,0 +1,76 @@
|
||||
#include<iostream>
|
||||
#include<cmath>
|
||||
#include<cstdio>
|
||||
|
||||
#define H 265
|
||||
#define W 272
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
unsigned char *grey;
|
||||
grey = new unsigned char[H * W];
|
||||
FILE *f;
|
||||
fopen_s(&f, "./数据/blood.raw", "rb");
|
||||
if (f)
|
||||
{
|
||||
fread(grey, sizeof(unsigned char), H * W, f);
|
||||
fclose(f);
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "无法打开文件" << endl;
|
||||
return 0;
|
||||
}
|
||||
fread(grey, sizeof(unsigned char), H * W, f);
|
||||
fclose(f);
|
||||
|
||||
// 模板
|
||||
int tw = 3;
|
||||
int th = 3;
|
||||
int template1[9]={0,1,0,1,-4,1,0,1,0};
|
||||
|
||||
int i,j,k,l;
|
||||
unsigned char *result_grey;
|
||||
result_grey = new unsigned char[H * W];
|
||||
|
||||
for (i = 0; i < H * W; i++)
|
||||
{
|
||||
result_grey[i] = 255;
|
||||
}
|
||||
for (i = th / 2; i < H - th / 2; i++)
|
||||
{
|
||||
for (j = tw / 2; j < W - tw / 2; j++)
|
||||
{
|
||||
// 应用拉普拉斯模板
|
||||
int sum = 0;
|
||||
for (k = -th / 2; k <= th / 2; k++)
|
||||
{
|
||||
for (l = -tw / 2; l <= tw / 2; l++)
|
||||
{
|
||||
sum += grey[(i + k) * W + (j + l)] * template1[(k + th / 2) * tw + (l + tw / 2)];
|
||||
}
|
||||
}
|
||||
if (sum > 100)
|
||||
{
|
||||
result_grey[i * W + j] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
result_grey[i * W + j] = 255;
|
||||
}
|
||||
}
|
||||
}
|
||||
FILE *fnew;
|
||||
fopen_s(&fnew, "./数据/laplacian.raw", "wb");
|
||||
if (fnew)
|
||||
{
|
||||
fwrite(result_grey, sizeof(unsigned char), H * W, fnew);
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "创建文件失败" << endl;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user