尹宗天,谢超逸,刘苏宜,刘新如
(河海大学常州校区 机电工程学院,江苏 常州 213000)
像素全称叫做图像元素,指基本原色素及它的灰度基本编码[1]。图像分辨率通常以像素每英寸PPI表示。数字图像具有连续的灰度色调,即当图像被放大数倍时,连续的色调由大量的具有类似色小点构成。这些小点就是图像最小元素——像素[2]。此最小图形单位一般在屏上显示为一个单一着色点。像素越高,其颜色板就会越丰富,就越可以表达色感。在单色成像的条件下,像素点的每种颜色都是黑白以及一系列黑白过渡色。灰阶用黑色的色调来标记对象,即用黑色作为基色以及不同饱和的黑色表示图像。每一个灰度对象具有0%-100%的亮度值(即白色到黑色)。通常,使用字节(8b)对像素值进行量化。如果灰度值连续变化被量化为256灰度级,灰度值的范围为0~255[3],表明亮度从深到浅,图像中的颜色由黑色变为白色。灰度图像与黑白图像不同。计算机的图像领域中,黑白图像只存在黑与白两色。灰度图像中的每一个像素值都是介于黑、白之间的256个颜色的深度不同灰度中。
本文主要研究了视野在靠近物体的直线方向上运动。利用放大转制法[4]。由凸透镜成像原理可知相机镜头离物体越近,其物像所包括的实物信息也就越多。把靠近放大后的物像信息通过导入更大的矩阵,再将矩阵转制为比第一帧物像更清晰的图像。放大比例越高,物像转制后越清晰。经过模型的建立,我们得出了最终模拟结果,分辨率达到了576×1152,细节相似度达到了85%以上。
由凸透镜成像原理(图 1)可知,在物体到凸透镜镜心距离大于凸透镜焦距条件下,物体到凸透镜镜心距离越小,其所成实像就越大。我们用三维软件画出了相机凸透镜成像的模拟图(图2、图3):
图1 凸透镜成像示意图[5]Fig.1 Schematic diagram of convex lens imaging[5]
图2 远处成像Fig.2 Remote imaging
图3 近处成像Fig.3 Near imaging
相机镜头就是一个凸透镜。因为相机拍出照片像素是一定的,根据以上原理可知,相机的镜头与物体距离越校,所形成的物像越大,其物像所包括的实物信息也就越多。我们由此设计了一套放大转制法。在黑色背景下拍完第一帧照片后,使相机不断径直靠近物体持续拍摄,我们可以通过以下步骤提高物像清晰度(放大比n尽可能取大于1的正整数):
由于现实情况下拍摄误差较大,我们在Photoshop软件中对物体成像进行模拟,以3200×6400像素的高清图像(图5)作为实物体。
图4 流程图Fig.4 Flow chart
图5 实物的高清图像Fig.5 HD image of a physical object
图6 第一帧物像Fig.6 Image of the first frame
我们假定视野中只有一个物体且物体在放大时始终完整的呈现在视野中,当物体为如图6的一个白色圆时,第一次取n=2,所以通过MATLAB程序建立一个64×128的全零矩阵(即像素64×128的全黑图像,该全值矩阵的值由背景灰度值决定)。再在之后连续拍摄的多帧图像中找出物像与第一帧中物像相似比 2:1的一张图,这张图中物像所能反映实物体 的信息量比第一帧图更多。然后将其转化为32×64的矩阵后导入 64×128的全零矩阵。最后将64×128矩阵化为图像(即像素为64×128),并将其大小缩放到和32×64像素的图像一样大,这样我们可明显观察到更为清晰的物像。图7为Matlab的图像像素提高的转制过程。
同理,当放大比 n=4时,我们要在 MATLAB中建全零矩阵大小为 128×256,并相应地 在拍摄的多帧图像中找出与第一帧物像相似比4:1的物像,导入全零矩阵转制,最终效果如图8所示。
将两次放大转制后的图像与第一帧图像进行局部放大对比,如图9所示。
可见随着放大比n不断增大,图像像素也不断提高,物像所能反映的实体的真实信息就会越来越多,也就是说物像能不断向实物接近。
在模型的第一次模拟中,为了使像素灰度值之间的过渡变得“圆滑”,我们采用了局部二值化处理即手动的灰度值调整[5]。用MATLAB的程序,对实物的图像加以局部二值化处理,如图10所示。
缺点:每次增加模拟次数时需要手动微调二值化的最小灰度值和最大灰度值,以达到显示图像细节的目的。
改进:采用OpenCV基于局部自适应阈值的图像二值化[6]。
较为经常使用的图像二值化的办法有 3种:(1)全局固定阈值;(2)局部自适应阈值;(3)Otsu。
全局固定阈值是指具有统一阈值的整体图像的两值,且局部自适应阈值根据像素邻域块之像素值的分布,从而确定在像素的位置上的2个阈值。这种做法的好处是,在每个像素位置的2个阈值不是固定的,而是通过它的相邻像素分布来决定。具有不同的对比度、亮度和纹理局部图像区,将具有相应的局部二阈值阈值[7]。
图9 放大转制后的物像的局部放大对比(左、中、右分别为第一帧图、 放大转制2倍图及4倍图)Fig.9 Partial enlargement and comparison of objects after enlargement(left, middle, and right are the first frame, 2 times and 4 times)
图10 进行局部二值化处理的实物图像(左为处理前,右为处理后)Fig.10 Physical image after local binarization process (left before processing, and right after processing)
最为常用的局部自适应阈值是:(1)局部邻域块平均值;(2)局部邻域块高斯加权和[8-11]。
下面这段OpenCV代码比较了局部自适应阈值及二值全局固定阈值的结果,实现了上述二值化方法。对比结果见图11。
1. // 基于局部自适应阈值的图像二值化
2. // Author:www.icvpr.com
3. // Blog: http://blog.csdn.net/icvpr
4.
5. #include
6. #include
7. int main(int argc, char** argv)
8. {
9. cv::Mat image = cv::imread("../test.bmp",CV_LOAD_IMAGE_GRAYSCALE);
10. if (image.empty())
11. {
12. std::cout<<"read image failure"< 13. return -1; 14. } 15. 16. // 全局二值化 17. int th = 100; 18. cv::Mat global; 19. cv::threshold(image, global, th, 255,CV_THRESH_BINARY_INV); 20. // 局部二值化 21. 22. int blockSize = 25; 23. int constValue = 10; 24. cv::Mat local; 25. cv::adaptiveThreshold(image, local, 255,CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY_INV, blockSize, constValue); 26. 27. cv::imwrite("global.jpg", global); 28. cv::imwrite("local.jpg", local); 29. 30. cv::imshow("globalThreshold",global); 31. cv::imshow("localThreshold", local); 32. cv::waitKey(0); 33. 34. return 0; 35. } 图11 全局固定阈值与局部自适应阈值的二值化结果对比(左、中、右分别为原图,全局固定阈值T=100,局部自适应阈值块大小=25)Fig.11 Comparison of binaryzation results between global fixed threshold and local adaptive threshold(left, middle and right are original image, global fixed threshold T=100, local adaptive threshold block size =25) 通过对比可以看出,局部自适应阈值二值化对灰度值差异较大的图片整合的能力及其实用性。 [1] 康寅, 杨文川. 图像表示及在检索系统中的应用[J]. 软件,2011, 32(1): 38-41. [2] 北京大学. 遥感资料集[M]. 北京大学遥感所, 1985. [3] 张君, 周卫平, 舒华忠. 基于多分辨率的水表用户码定位与识别[J]. 软件, 2013, 34(3): 131-133+153. [4] 胡宗进, 范文强, 于光玉, 等. 基于OpenCV的自适应阈值图像前景提取[J]. 光电技术应用, 2017, 32(1): 56-59. [5] 王明毅, 郭明昊, 俎敏敏, 等. 一种基于BP神经网络的低分辨率图像复原方法(英文)[J]. 农业科学与技术: 英文版,2017, 18(4): 687-690. [6] Author:www.icvpr.com, OpenCV基于局部自适应阈值的图像二值化, http://blog.csdn.net/icvpr/article/details/8515596. [7] 吴炜, 杨晓敏, 卿粼波, 等. 基于马尔可夫随机场的低分辨率车牌图像复原算法[J]. 计算机应用研究, 2010, 27(3):1170-1172. [8] 计岑. 低分辨率散焦模糊图像的超分辨率重建复原方法[C].国际广播电视技术讨论会. 2013. [9] 付亚伟, 魏镜弢, 赵明. 多帧超分辨率图像重建迭代小波算法研究[J]. 价值工程, 2018, 37(1): 214-215. [10] 葛芸, 江顺亮, 叶发茂, 等. 基于ImageNet预训练卷积神经网络的遥感图像检索[J]. 武汉大学学报(信息科学版),2018, 43(1): 67-73. [11] 龙法宁, 朱晓姝, 胡春娇. 基于深层卷积网络的单幅图像超分辨率重建模型[J]. 广西科学, 2017, 24(3): 231-235.4 结论