先上圖:
測試程序
1.獲取圖像灰度
read_image (Image, 'D:/HalconWorkplace/img/Spin1.png')
get_grayval(Image,0 ,0, Grayval)
任何顏色都有紅、綠、藍三原色組成,假如原來某點的顏色爲RGB(R,G,B),那麼,我們可以通過下面幾種方法,將其轉換爲灰度:
我們採用浮點算法:Gray=R *0.3+G * 0.59+B * 0.11
Gray = 63 * 0.3 + 72 * 0.59 * 204 * 0.11 = 83.82
注意:這個是後面獲取沒有旋轉圖像的灰度值的依據。(80-90)
2.反轉前原圖:
插入代碼:
*此例子將圖中沒有偏移的形狀參照旋轉的形狀進行旋轉
read_image (Image, 'D:/HalconWorkplace/img/Spin.png')
get_grayval(Image,0 ,0, Grayval)
rgb1_to_gray (Image, GrayImage)
*獲取旋轉的矩形
threshold (GrayImage, Regions, 0, 0)
*計算區域斜率
orientation_region (Regions, Phi)
*獲取沒有旋轉的矩形
threshold (GrayImage, Regions1, 80, 90)
area_center (Regions1, Area, Row, Column)
*創建變換模型
vector_angle_to_rigid (Row, Column, 0, Row, Column, Phi, HomMat2D)
*區域變換
affine_trans_region (Regions1, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
dev_clear_window ()
dev_display (RegionAffineTrans)
dev_display (Regions)