日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

halcon入门之_提取遥控器字符并且写入txt文本

發(fā)布時(shí)間:2023/12/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 halcon入门之_提取遥控器字符并且写入txt文本 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

*老生常談 read_image (Image, a) rgb1_to_gray (Image, GrayImage) dev_display (GrayImage) * 首先要把它轉(zhuǎn)化為灰度圖,在機(jī)器視覺中,大部分的圖像處理算子都是建立在灰度圖上的,所以gray(灰度圖)是標(biāo)志性存在的*轉(zhuǎn)化為灰度圖后,就要進(jìn)入正式的圖像處理了,先來一波閾值分割auto_threshold (GrayImage, Regions, 24.4) *auto_threshold 算子是基于直方圖的自動(dòng)閾值分割方法,第三個(gè)參數(shù)的作用是一個(gè)平滑算子,在這次的使用中,效果不是很好,分析原因主要是對(duì)比不夠強(qiáng)烈,算子使用前后沒有明顯區(qū)分 threshold (GrayImage, Region, 170, 255) *threshold 是手動(dòng)設(shè)置閾值的算子,在halcon中查看閾值可以在鼠標(biāo)移至照片上,按下Ctrl鍵,便會(huì)實(shí)時(shí)顯示當(dāng)前灰度值 *binary_threshold (GrayImage, Region, 'smooth_histo', 'light', UsedThreshold) *binary_threshold 在這里的使用中,遙控器左下角有些許噪聲會(huì)干擾 *閾值分割后,常見的做法就是連通區(qū)域 connection (Region, ConnectedRegions) *然后在這里,明顯的可以通過面積特征來篩選就可以 select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 1.22555e+06) dev_clear_window () dev_display (SelectedRegions)*在select_shape_std 算子中,面積大小可以通過halcon的"打開特征檢測(cè)"菜單來查看*提取之后填充 fill_up (SelectedRegions, RegionFillUp) *截取帶有字符的區(qū)域,如果上邊不填充,這里直接截取區(qū)域的話,會(huì)漏掉字符部分 reduce_domain (GrayImage, RegionFillUp, ImageReduced) *區(qū)域截取之后,再通過閾值分割來找到字符 fast_threshold (ImageReduced, Region1, 0, 100, 20) *先把字符區(qū)域放平整,分割出去',' orientation_region (Region1, Phi) *轉(zhuǎn)換成正常角度,把逗號(hào)分割出去 area_center (Region1, Area, Row, Column) vector_angle_to_rigid (Row, Column, Phi, Row, Column, -0.5*3.14, HomMat2D) affine_trans_region (Region1, RegionAffineTrans, HomMat2D, 'nearest_neighbor')*去除','區(qū)域,在這里考慮使用面積篩選 *腐蝕-膨脹-連通處理*篩選 closing_circle (RegionAffineTrans, RegionClosing, 3.5) dilation_rectangle1 (RegionClosing, RegionDilation, 1, 11) connection (RegionDilation, ConnectedRegions1) ******這里的兩個(gè)篩選還是有區(qū)別的,注意區(qū)分 select_shape_std (ConnectedRegions1, SelectedRegions1, 'max_area', 150) select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 150, 99999) ****把未去除逗號(hào)區(qū)域旋轉(zhuǎn) affine_trans_region (Region1, RegionAffineTrans1, HomMat2D, 'nearest_neighbor') *求交集 intersection (SelectedRegions2, RegionAffineTrans1, RegionIntersection)sort_region (RegionIntersection, SortedRegions, 'first_point', 'true', 'row') *有字符連接在一起的情況,要分割開來 *首先尋找特征,根據(jù)面積呢,是不合適了,在這里,我們選擇通過矩形邊長來吧select_shape (SortedRegions, SelectedRegions3, 'rect2_len1', 'and', 30, 99999) *膨脹 closing_circle (SelectedRegions3, RegionClosing1, 0.5) dilation_rectangle1 (RegionClosing1, RegionDilation1, 1, 11) connection (RegionDilation1, ConnectedRegions2)*單個(gè)字符分割后,再求交集 intersection (ConnectedRegions2, SelectedRegions3, RegionIntersection1)*得到一個(gè)空區(qū)域 gen_empty_obj (EmptyObject) concat_obj (EmptyObject, RegionIntersection1, EmptyObject)difference (RegionIntersection, RegionIntersection1, RegionDifference)concat_obj (RegionDifference, EmptyObject, ObjectsConcat)count_obj (ObjectsConcat, Number)a:=[] l1:=[] l2:=[] for i := 1 to Number by 1select_obj (ObjectsConcat, ObjectSelected, i)area_center (ObjectSelected, Area1, Row1, Column1)a:=[a,Area1,'\t']smallest_rectangle2 (ObjectSelected, Row2, Column2, Phi1, Length1, Length2)l1:=[l1,Length1,'\t']l2:=[l2,Length2,'\t'] endfor*新建txt open_file ('0711.txt', 'output', FileHandle)fwrite_string (FileHandle, a) fnew_line (FileHandle)fwrite_string (FileHandle, l1) fnew_line (FileHandle)fwrite_string (FileHandle, l2) fnew_line (FileHandle)

#s/

總結(jié)

以上是生活随笔為你收集整理的halcon入门之_提取遥控器字符并且写入txt文本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。