/// <summary>
/// 从一个文件夹读取1000张图片,平均后再归一化
/// </summary>
public void average()
{
DirectoryInfo dirInfo = new DirectoryInfo(@"C:\新建文件夹\22");
FileInfo[] fileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
Mat average = new Mat(new OpenCvSharp.Size(512, 512), MatType.CV_32FC1);
Mat dst = new Mat(new OpenCvSharp.Size(512, 512), MatType.CV_8UC1);
int page = 1000;
for (int i = 0; i < page; i++)
{
Mat img1 = new Mat(fileInfo[i].FullName, ImreadModes.Grayscale);
//累加
Cv2.Accumulate(img1, average, null);
}
//平均
average = average / page;
average.ConvertTo(average, MatType.CV_8UC1);
double min = 0;
double max = 0;
average.MinMaxLoc(out min, out max);
//归一
dst = 255 / (max - min) * (average - min);
dst.SaveImage("C:\\新建文件夹\\9.tif");
}
OpenCvSharp N幅图片叠加成一张图片
最新推荐文章于 2024-12-04 21:19:24 发布
这段代码演示了如何利用OpenCV从指定文件夹中读取1000张图片,计算它们的平均图像,并进行归一化处理。首先,它遍历目录获取所有文件,然后使用Accumulate函数累加图像像素,接着计算平均值,最后进行归一化操作并将结果保存为新的图片文件。
861

被折叠的 条评论
为什么被折叠?



