今天给推荐一个可以媲美OpenCV的开源库,它具有高性能、低内存、跨平台、无内存泄漏的特性。

项目简介

这是用C 开发的图像处理库,支持的API超过300多个,涵盖了算术、颜色、图片转换、卷积、形态、马赛克、合并、切割等。

支持多种图像格式,包括:JPEG、JPEG2000、JPEG-XL、TIFF、PNG、WebP、HEIC、AVIF、FITS、Matlab、OpenEXR、PDF、SVG、HDR、PPM/PGM/PFM、CSV、GIF、分析、NIfTI、DeepZoom 和 OpenSlide。支持相应的图片格式直接保存,不需转换。

性能好、运行速度非常快、占用很少的内存,相对同类库,表现最优秀,性能快5倍以上。

开源图像处理库(推荐一个最好用的高性能)(1)

官方提供SDK

官方提供各种语言的SDK,包括:Ruby、Python、PHP、C#/.Net、Go、Lua、Crystal、Elixir。

开源图像处理库(推荐一个最好用的高性能)(2)

使用例子

在C#使用还是比较方便,通过Nuget先安装库。此示例加载png文件、并进行颜色转换,并以png格式保存。

using NetVips; var i = NetVips.Image.NewFromFile("E:projectTestProjectConsoleAppConsoleApp.png"); var i2 = i.CMC2LCh(); i2.Pngsave("E:projectTestProjectConsoleAppConsoleAppCMC2LCh.png");

开源图像处理库(推荐一个最好用的高性能)(3)

简单使用

通道分割

NetVips.Image image = NetVips.Image.NewFromFile("E:projectTestProjectConsoleAppConsoleApp.png", memory: false, access: Enums.Access.Random); NetVips.Image[] images = image.Bandsplit(); foreach(var item in images) { item.Pngsave("E:projectTestProjectConsoleAppConsoleAppBandsplit" DateTime.Now.Ticks ".png"); }

开源图像处理库(推荐一个最好用的高性能)(4)

高斯滤波

NetVips.Image image = NetVips.Image.NewFromFile(imgFile, memory: false, access: Enums.Access.Random); NetVips.Image gauss = image.Gaussblur(15); i2.Pngsave(imgPath "gauss.png");

开源图像处理库(推荐一个最好用的高性能)(5)

增强绿色通道,锐化图像

var image = Image.NewFromFile(imgFile, access: Enums.Access.Sequential); var multiply = image * new[] { 1, 2, 1 }; using var mask = Image.NewFromArray(new[,] { {-1, -1, -1}, {-1, 16, -1}, {-1, -1, -1} }, scale: 8); var convolve = multiply.Conv(mask, precision: Enums.Precision.Integer); convolve.Pngsave(imgPath "convole.png");

开源图像处理库(推荐一个最好用的高性能)(6)

Mosaic

vari1=Image.NewFromFile("E:\\project\\TestProject\\ConsoleApp\\ConsoleApp\\d.png"); var i2 = i.CMC2LCh(); i2 = i.Mosaic(i2, Enums.Direction.Horizontal, 0, 0, 10, 10); i2.Pngsave("E:\\project\\TestProject\\ConsoleApp\\ConsoleApp\\Mosaic.png");

开源图像处理库(推荐一个最好用的高性能)(7)

源码地址

私信回复:1045

,