一、圖像的幾何變換
機器視覺圖像處理軟件對相機采集的圖像進行縮放/平移/旋轉(zhuǎn)等操作后,會改變原來采集圖像中各區(qū)域的空間關系,這類操作就是圖像的幾何變換。
1.圖像縮放:是指圖像按照一定的比例進行縮放變換,例如給定的圖像在X軸方向按比例縮放fx倍,在Y軸方向縮放fy倍,從而獲得一幅新的圖象。
2.圖像平移:是指將一幅圖像中所有的點都按照指定的平移量在水平、垂直方向移動,平移后的圖像與原圖像相同。
3.圖像旋轉(zhuǎn):是指以圖像的中心為原點,旋轉(zhuǎn)一定的角度,即將圖像上的所有像素都旋轉(zhuǎn)一個相同的角度。
二、背景
在實際的機器視覺項目應用當中,時常會遇到因相機采集圖像的時候可能會存在角度偏差,或者采集圖像比例不合適等問題。
因而導致我們實際采集的圖像存在未達到我們預期的采集圖像效果,所以我們需要進行圖像的幾何變換做一些圖像調(diào)整(圖像平移、旋轉(zhuǎn)和縮放等),使之達到我們預期的效果。
在上期課程中,我們講述了如何使用VPLC系列視覺運控一體機實現(xiàn)圖像顏色通道切換和RGB圖轉(zhuǎn)灰度圖的課程。本期課程正運動技術給大家分享一下VPLC系列視覺運控一體機實現(xiàn)圖像的幾何變換中縮放、平移和旋轉(zhuǎn)的課程。
三、VPLC控制器
(一)VPLC516E構(gòu)架圖
(二)課前準備
1.電腦一臺,安裝ZDevelop3.10以上版本軟件
2.VPLC516E一臺
3.24V直流電源一個
4.網(wǎng)線一根
5.WinSCP軟件
6.電線若干
四、課程知識點
1.圖像的縮放和平移的指令:ZV_LATCHTRANS
2.圖像的旋轉(zhuǎn):ZV_ROTATE
五、軟件實現(xiàn)
1.打開ZDevelop軟件:新建名稱為“圖像的幾何變換.zpj”項目→新建HMI文件→新建“Basic.bas”文件(用于編寫界面響應函數(shù)、并開啟HMI自動運行任務)→文件添加到項目。
2.設計HMI主界面和關聯(lián)它的控件變量。
3.編寫圖像比例縮放和平移的執(zhí)行函數(shù)。
ZVOBJECT Image '定義原圖像變量
ZVOBJECT transform_img '定義變換圖像
GLOBAL gv_index '定義圖片索引變量
GLOBAL File_Name(50) '定義圖片所在的路徑名稱
gv_index=0
end
GLOBAL SUB hmi_init()
ZV_ENVINIT() 'ZVision運行環(huán)境初始化
ZV_SETSYSSTR("DataDir","")'設置默認數(shù)據(jù)目錄
ZV_LATCHSETSIZE(0, HMI_CONTROLSIZEX(10, 1), HMI_CONTROLSIZEY(10, 1)) '設置鎖存的大小
ZV_LATCHSETBGC(0,rgb(255,255,255)) '設置鎖存背景顏色
ZV_LATCHCLEAR(0) '將鎖存通道 0 清零
END SUB
''''''''采集圖像''''''
'HMI界面按下采集圖像按鈕時執(zhí)行的子函數(shù)
GLOBAL SUB btn_read_img()
'循環(huán)圖片索引
if(gv_index=5) then
gv_index=0
endif
File_Name = "圖片/" + TOSTR(gv_index,1,0) + ".bmp" '確定圖片所在的路徑
ZV_READIMAGE(Image,File_Name,0) '讀取本地圖片
ZV_LATCH(Image, 0) '將圖像顯示到鎖存通道編號為0的鎖存區(qū)域
gv_index=gv_index+1
ZV_IMGCOPY(Image,transform_img) '生成變換圖像
END SUB
'''''''圖形變換'''''''
'圖像縮放平移變換
global sub pic_conversion(id)
if id=0 THEN '圖像幾何變換復位按鈕
ZV_LATCHCLEAR(0)
ZV_IMGCOPY(Image,transform_img)
zv_latch(transform_img,0)
elseif id=1 THEN '圖像放大按鈕
ZV_LATCHTRANS(0,TABLE(10),0,0)
zv_latch(transform_img,0)
elseif id=2 THEN '圖像縮小按鈕
ZV_LATCHTRANS(0,1/TABLE(10),0,0)
zv_latch(transform_img,0)
elseif id=3 THEN '圖像向右平移按鈕
ZV_LATCHTRANS(0,1,TABLE(20),0)
zv_latch(transform_img,0)
elseif id=4 THEN '圖像向左平移按鈕
ZV_LATCHTRANS(0,1,-TABLE(20),0)
zv_latch(transform_img,0)
elseif id=5 THEN '圖像向下平移按鈕
ZV_LATCHTRANS(0,1,0,TABLE(20))
zv_latch(transform_img,0)
elseif id=6 THEN '圖像向上平移按鈕
ZV_LATCHTRANS(0,1,0,-TABLE(20))
zv_latch(transform_img,0)
END SUB
4.編寫圖像旋轉(zhuǎn)執(zhí)行函數(shù)。
'圖像旋轉(zhuǎn)
global sub pic_conversion(id)
if id=7 THEN '圖像順時針旋轉(zhuǎn)按鈕
ZV_ROTATE(transform_img,transform_img,TABLE(30),0)
zv_latch(transform_img,0)
elseif id=8 THEN '圖像逆時針旋轉(zhuǎn)按鈕
ZV_ROTATE(transform_img,transform_img,-TABLE(30),0)
zv_latch(transform_img,0)
endif
ENDSUB
本次,正運動技術【視覺運控一體機小課堂】三分鐘實現(xiàn)圖像的幾何變換的功能,就分享到這里。
審核編輯:湯梓紅
-
視覺控制
+關注
關注
0文章
8瀏覽量
6835
發(fā)布評論請先 登錄
相關推薦
評論