一、前言
去年,我发布了《1200万像素通过算法无失真扩展到1.92亿像素——加权概率模型收缩模型图像像素扩展算法》实验效果,这类型的算法有超像素算法,AI等,本篇博客主要是在上次发布文章后做了技术上的优化和改进。我们使用windows或者苹果设备对图像扩大时,会越来越模糊。2023年2月28日英伟达发布了新驱动,里面涉及到超像素算法。
研究超像素的目的是解决下面两个问题:
1、设备之间的清晰度同步:比如手机、平板、电视、显示器以及广告牌屏之类的,应该分辨率不一样,而图像或视频的播放资源(片源)基本上只有270P,480P,720P,1080P,2K,4K,8K等,为了提高传输效率和降低存储资源,往往会选择比较低的分辨率传输视频。于是在显示设备端就会出现拉伸使得画面模糊,需要利用超像素算法实现清晰播放。画面模糊的最大问题就是轮廓模糊了。
2、摄像头的ISP应用:在摄像时利用此类算法增加伪像素,于是从拍摄时就确保图像质量最大可能得到优化和处理。
二、杰林码轮廓和色彩强化算法
杰林码超像素算法也是基于加权概率模型核心算法,该算法是基于《一种全新的图像变换理论的实验(系列)——研究目的替代DCT和小波》理论构造的两个具体应用。主要实现的方向是:
1、利用杰林码图像变换理论寻找图像内应该被优化的色彩范围,见实验一的效果;
2、利用杰林码图像变换理论界定图形的边缘,从而优化图像的模糊边缘,见实验二的效果。
代码全部采用了C语言,处理一些内存处理,其他的全部是加权概率模型理论设计的编码程序。主函数(暂时没有考虑多线程的问题)提供了四个参数:
ratio(R):继承了杰林码图像变换算法的核心参数;
magnification(M) :图像扩大倍数,0代表不扩大图像,是指行列扩大的比例,实际扩大倍数(magnification +1)*(magnification +1)
pixel_size (PS):属于图像内应该被优化的色彩范围,越大颜色越鲜艳。
contour_size (CS):轮廓预测是分块的,目的是方便进行硬件化,这个参数是设定轮廓预测的块大小。设置为0表示不进行轮廓预测。
我的算法最大区别是无需训练,通过参数自行调整清晰度和色彩效果。
int main() {
int err;
char url1[200],url2[200];
// 杰林码系数0-49,是本算法的核心参数,数值越大着色起始的位置越多,但是边缘越是不清晰
int ratio = 25;
// 图像放大倍数0-7
int magnification = 0;
// 着色像素范围1-8,基于着色位置(x,y)开始覆盖的像素半径
int pixel_size = 4;
// 轮廓预测像素直径,自定义0-100,设置为0时不进行图形边缘预测
int contour_size = 48;// 72 - ratio;
// 自定义文件名
const char* fileName = "lena512";
sprintf_s(url1, 200, "D:\\%s.bmp", fileName);
sprintf_s(url2, 200, "D:\\%s-%d-%d-%d-%d.bmp", fileName, magnification, ratio, pixel_size, contour_size);
// 图像超像素函数
err = WJL_Image_Hyperpixel(url1, url2, magnification, MODE_NULL, ratio, pixel_size, contour_size);
//system("pause");
return 0;
}
三、杰林码色彩强化实验
一本情况下,按照国际学术标准,都会以lenna.bmp图像作为图像处理的标准,此时contour_size (CS)设置为0,不进行轮廓预测。
接下来是彩色图的实验效果:
左图为原图,右图为R=30 M=0 PS=5。
左图为原图,右图为R=30 M=0 PS=5。
左图为原图,右图为R=30 M=0 PS=5。
左图为原图,右图为R=35 M=1 PS=5。
上组图中左图为原图,右图为R=35 M=1 PS=4。
四、杰林码轮廓预测实验
轮廓预测实验主要采用的是灰度图,下面的截图中可以通过文件名查看四个参数的设置情况,一个好的高速轮廓预测算法能有效改善人工智能应用中图像识别的准确率和效果。
从上面的图可以看出,白色的边缘都是需要强化的轮廓,强化方法有很多,通过轮廓图与原图对照处理0xFF的边缘位置,或者处理非0xFF区域,方法实在太简单,这里就不讲了。
上述实验,我特意把非0xFF的像素值都减去了8,所以会比原图颜色深一些。下面的实验没有这个步骤,我们看看针对病理细胞的轮廓预测吧!
能有效获取污点、真菌、菌丝、以及滴虫等的形状和轮廓。下面的实验是手绘图:
显然,参数不同,杰林码超像素轮廓预测结果也不同,可以根据不同的场景自定义。再贴两张基于加权概率模型的轮廓预测(用黑白线标记):
接下来是针对描述的边缘进行轮廓优化。
五、总结
之所以把杰林码轮廓和色彩强化算法分成两个块进行实验,是为了证明算法的有效性。实际的轮廓和色彩强化算法在图像上的应用我将在下一篇博客中展示。论文在申请好发明专利后逐步提交,或者大家也可以看我写的书《杰林码原理及应用》,书中我对加权概率模型进行了定义,以及证明该模型是收敛,且能用于压缩,加密,信道编码等等领域。