整套方案的基本原理主要是利用ADI公司最近推出800MMAC/400MHz的高速处理器的硬件开发平台的进行开发,活动功耗低至88 mW,采用小型9 mm x 9 mm 64引脚LFCSP封装,能够充分满足工业、医疗、视频、音频和通用市场的需求,本系统利用该平台的168Pin EXPORT扩展卡插槽或标准的RS-232串口进行数据的传输,如图1所示:
图1 原理图
2图片显微实现原理
图像的放大可以用插值的方法,其中一种简单的插值就是线性插值,线性插值虽然简单,却非常有效。我们在该试验中就使用了线性插值的方法。
所谓线性插值就是说:有一组离散数据{a(1),a(2),…,a(n)},我们想要知道a(k)和a(k+1)之间的数a(m) (k<m<k+1)是多少。但因为数据是离散的,我们只知道a(k)和a(k+1),因此我们只能对a(m)进行一个估计,这个估计的值就叫插值。一种比较合理的估计是a(k)和a(k+1)之间某点的值可能是a(k)+(a(k+1)-a(k))*m,m是[0,1]之间的一个常小数,这就叫线性插值。如图2所示:
图2 线性插值图
图像的线性插值放大
图像就是一个象素矩阵,可以表示为p(i,j)。现在用p(i,j)表示原图像中的某个点,ps(i,j)表示放大后的图像的某个点,放大过程如下:
首先计算需要插值的位置
新图像的某个点ps(x,y) 的值为
ps(x,y) =p(m,n)
m =原图像高×(x÷新图像高)
n =原图像宽×(y÷新图像宽)
m,n 一般会是一个小数,就是原图像需要插值的位置
知道了插值位置接下来就要对原图像进行插值了,如图3所示:
图3 插值以后的图
其中p(i,n) ,p(m,j) ,p(i+1,n) ,p(m,j+1) ,p(m,n) 就是用线性插值方法插进去的,
p(i,n) =p(i,j) +(p(i,j+1) -p(i,j)) ×(n-j)
p(m,j) =p(i,j) +(p(i+1,j) -p(i,j)) ×(m-i)
p(i+1,n) =p(i+1,j) +(p(i+1,j+1) -p(i+1,j)) ×(n-j)
p(m,j+1) =p(i,j+1) +(p(i+1,j+1) -p(i,j+1)) ×(m-i)
p(m,n) =p(i,n) +(p(i+1,n) -p(i,n)) ×(m-i)
i =floor(m)
j =floor(n)
floor是向下取整
这样放大图像的每一个点的值ps(x,y)就全有了,把他写到新图像中就完成了图像的线性插值放大。VC实现
我们用OpenCV(beta_5)库来读取图像,然后手工插值放大。程序是MFC/DOC/VIEW结构
首先接入OpenCV(beta_5)库实验源代码见程序代码。
理想放大效果如图-所示,局部放大效果图如5所示:
图4 理想放大图
图5局部放大图
3其他模块实现原理
3.1LCD 显示模块
ADI的Blackfin ADSP-BF592开发平台中的LCD 显示屏兼容多种LCD,可采用5 寸256 色屏或8 寸16bit 真彩屏,同时预留一个24bit 接口。
3.2键盘模块
ADI的Blackfin ADSP-BF592 开发平台中的小键盘使用ATMEGA8 单片机控制2 个PS2 接口和板载17 键小键盘,两个PS2可接PC 键盘和鼠标。
|