halcon使用直線標定板,標定相機內參代碼

read_image (Image, '直線標定板圖片/Left201118140641772.bmp')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)
* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('直線標定板圖片', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
gen_empty_obj (Edges)
*|ImageFiles|
for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])edges_sub_pix (Image, ImageEdges, 'canny', 1, 10, 40)segment_contours_xld (ImageEdges, SplitEdges, 'lines_circles', 5, 4, 2)select_shape_xld (SplitEdges, SelectedEdges, 'contlength', 'and', 30, 100000)concat_obj (Edges, SelectedEdges, Edges)dev_display (Image)dev_set_colored (12)dev_display (SelectedEdges)
*     wait_seconds (0.1)
endfor
stop ()radial_distortion_self_calibration (Edges, CalibrationEdges, Width, Height, 0.01, 42, 'division', 'variable', 0, CamParMultiImage)
dev_clear_window ()
dev_set_colored (12)
dev_display (CalibrationEdges)PosInImageX:=0
PosInImageY:=0
RadiusInImage:=0
*直線畸變矯正準備
change_radial_distortion_cam_par ('fixed', CamParMultiImage, 0, CamParMultiImageRect)
get_domain (Image, Domain)
create_metrology_model (MetrologyHandle)
* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('weizhi', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])* 直線標定change_radial_distortion_image (Image, Domain, ImageRectified, CamParMultiImage, CamParMultiImageRect)binary_threshold (ImageRectified, Region, 'max_separability', 'dark', UsedThreshold)fill_up (Region, RegionFillUp)difference (RegionFillUp, Region, RegionDifference)fill_up (RegionDifference, RegionFillUp1)connection (RegionFillUp1, ConnectedRegions)select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)smallest_circle (SelectedRegions, Row, Column, Radius)add_metrology_object_circle_measure (MetrologyHandle, Row, Column, Radius, Radius/10, Radius/60, 1, 90, ['measure_distance','min_score'], [Radius/30,0.2], Index1)apply_metrology_model (ImageRectified, MetrologyHandle)gen_empty_obj (Contours)get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row1, Column1)get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)get_metrology_object_result_contour (Contour, MetrologyHandle, 'all', 'all', 1.5)dev_display (ImageRectified)dev_display (Contour)PosInImageX[Index]:=Parameter[1]PosInImageY[Index]:=Parameter[0]RadiusInImage[Index]:=Parameter[2]
endfor
stop ()MacX:=[154.394,151.394,148.394,154.394,151.394,148.394,154.394,151.394,148.394]
MacY:=[-12.367,-12.367,-12.367,-14.368,-14.368,-14.368,-16.367,-16.367,-16.367]PointImageDis:=0
PointMacDis:=0distance_pp (PosInImageY[0], PosInImageX[0], PosInImageY[1], PosInImageX[1], Distance)
PointImageDis[0]:=Distancedistance_pp (MacY[0], MacX[0], MacY[1], MacX[1], Distance)
PointMacDis[0]:=Distancedistance_pp (PosInImageY[1], PosInImageX[1], PosInImageY[2], PosInImageX[2], Distance)
PointImageDis[1]:=Distancedistance_pp (MacY[1], MacX[1], MacY[2], MacX[2], Distance)
PointMacDis[1]:=Distancedistance_pp (PosInImageY[3], PosInImageX[3], PosInImageY[4], PosInImageX[4], Distance)
PointImageDis[2]:=Distancedistance_pp (MacY[3], MacX[3], MacY[4], MacX[4], Distance)
PointMacDis[2]:=Distancedistance_pp (PosInImageY[4], PosInImageX[4], PosInImageY[5], PosInImageX[5], Distance)
PointImageDis[3]:=Distancedistance_pp (MacY[4], MacX[4], MacY[5], MacX[5], Distance)
PointMacDis[3]:=Distancepix:=PointMacDis[0]/PointImageDis[0]vector_to_hom_mat2d (PosInImageX, PosInImageY, MacX, MacY, HomMat2D)//求解變換矩陣HomMat2D
affine_trans_point_2d (HomMat2D, PosInImageX, PosInImageY, Qx, Qy)//根據模板中心坐標求取距離相機中心實際距離

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254170.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254170.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254170.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

dyld: Library not loaded: @rpath/libswiftCore.dylib 解決方法

解決: 設置Build Setting - > 搜索 embe關鍵字 -> 修改屬性 見如下圖: 如果更新了Xcode 8 這里變成: 轉載于:https://www.cnblogs.com/yajunLi/p/5979621.html

Bootloader及u-boot簡介/u-boot系統啟動流程

Bootloader及u-boot簡介Bootloader代碼是芯片復位后進入操作系統之前執行的一段代碼,主要用于完成由硬件啟動到操作系統啟動的過渡,從而為操作系統提供基本的運行環境,如初始化CPU、堆棧、存儲器系統等。Bootloader 代碼與CPU 芯片的內核結構…

Dubbo之RPC架構

為什么會有dubbo的出現: 隨著互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。 單一應用架構 當網站流量很小時&#xff0c…

區域路由的注冊機制

AreaRegistration.RegisterAllAreas() 我們新建一個名稱為Admin的Area,VS生成下面的代碼。 { action , id 我們先來看AreaRegistration這個抽象類,實際上,它只有一個核心功能,就是RegisterAllAreas,獲取所有繼承它的…

Unix/Linux IPC及線程間通信總結

一、互斥與同步 1.互斥:是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。 2.同步:是指在互斥的基礎上(大多數情況)&#xff0…

CSS樣式的插入方式

1.外部樣式&#xff1a; 當樣式需要應用于很多頁面時&#xff0c;外部樣式表將是理想的選擇。<head><link rel"stylesheet" type"text/css" href"mystyle.css" /> </head> 2.內部樣式 當單個文檔需要特殊的樣式時&#…

嵌入式Linux系統基礎知識

一、嵌入式Linux系統的構成 1、硬件 2、內核 3、應用程序&#xff08;形成根文件系統&#xff09; 二、構建嵌入式Linux系統的主要任務 1、內核部分 2、應用程序部分 嵌入式Linux的開發大致可分為三個層次&#xff1a;引導裝載內核、構造文件系統和圖形用戶界面。作為操作系統…

win10系統javac不是內部或外部命令,也不是可運行的程序 或批處理文件。

按照下面的步驟設置環境變量 說明&#xff1a; 1. 如果編輯的是系統環境變量&#xff0c;命令提示符需要以管理員權限運行&#xff1b;如果在用戶環境變量中編輯&#xff0c;則當前用可直接運行命令提示符。 2. win10中的路徑相對于win7要設置成絕對路徑。 1&#xff0e;打開…

兩個bat文件

1、修改后綴名 ren *.cs *.txt ren *.txt *.zip2、修改文件名稱 echo offset a00setlocal EnableDelayedExpansionfor %%n in (*.txt) do (set /A a1ren "%%n" "!a!.txt")

各種排序筆記---基于比較排序部分

1. 選擇排序 selection sort 大循環 從左到右每次以一個點開始掃描array 小循環 找到從當前起始點開始的最小值 時間復雜度為O(N^2) //selection sort an array array[] public class Solution {public int[] solve(int[] array) {if (array null || array.length 0) {return…

是什么讓深度學習再次崛起并超越人類?

作者潘爭&#xff0c;格靈深瞳計算機視覺工程師&#xff0c;清華大學自動化系博士&#xff0c;師從智能技術與系統國家重點實驗室副主任張長水。深度學習(Deep Learning)這個詞最近借著AlphaGO與李世石的人機大戰又火了一把。深度學習其實是機器學習(Machine Learning)的一個分…

常見的流量問題

常見的流量問題 冗余內容同類請求被間隔執行&#xff0c;請求的內容包含一些相對靜態的信息&#xff0c;正確的處理是第一次請求包括靜態信息就好&#xff0c;后面的同類請求只包含必要的即時變化信息即可。錯誤的處理方式是每次請求服務器都返回一次靜態信息。 冗余請求有的時…

halcon使用點擬合圓形時候,點集順序紊亂,不影響圓形擬合效果

read_image (Image, 截圖20201226094342972.bmp) * Matching 01: BEGIN of generated code for model initialization set_system (border_shape_models, false) * Matching 01: Obtain the model image * Matching 01: The image is assumed to be made available in the * Ma…

Socket理解。

其他大部分系統&#xff0c;例如CRM/CMS/權限框架/MIS之類的&#xff0c;無論怎么復雜&#xff0c;基本上都能夠本地代碼本地調試&#xff0c;性能也不太重要。&#xff08;也許這個就是.net的企業級開發的戰略吧&#xff09; 可是來到通訊系統&#xff0c;一切變得困難復雜。原…

多元化時代敏捷軟件開發的崛起與傳統軟件工程的延續

多元化時代敏捷軟件開發的崛起與傳統軟件工程的延續 1.傳統軟件開發模式 1.1瀑布模型 1.1.1概念 瀑布模型&#xff0c;顧名思義&#xff0c;軟件開發的過程如同瀑布飛流一般&#xff0c;自上而下&#xff0c;逐級下落。瀑布模型的核心思想是將問題按照工序進行簡化&#xff0c;…

Linux中的cron計劃任務配置詳解

cron來源于希臘單詞chronos&#xff08;意為“時間”&#xff09;&#xff0c;指Linux系統下一個自動執行指定任務的程序&#xff08;計劃任務&#xff09; ####1. crontab命令選項代碼如下: #crontab -u <-l, -r, -e> -u指定一個用戶 -l列出某個用戶的任務計劃 -r刪除某…

new和delete

和 sizeof 類似&#xff0c;sizeof不是函數&#xff0c;它是一個操作符&#xff0c;它在編譯期就完成了計算&#xff0c;在函數運行期間它已經是一個常數值了。 int a;sizeof(int) 4;sizeof(a) 4;sizeof a ——也是4 不需要括號&#xff01;此時要注意&#xff1a;sizeof in…

char a[]和char *a的比較,數組名,數組首地址,a,a,a[0]

char a[]和char *a的比較 指針和數組存在著一些本質的區別。當然&#xff0c;在某種情況下&#xff0c;比如數組作為函數的參數進行傳遞時&#xff0c;由于該數組自動退化為同類型的指針&#xff0c;所以在函數內部&#xff0c;作為函數參數傳遞進來的指針與數組確實具有一定的…

Java中繼承thread類與實現Runnable接口的區別

Java中線程的創建有兩種方式&#xff1a; 1&#xff0e; 通過繼承Thread類&#xff0c;重寫Thread的run()方法&#xff0c;將線程運行的邏輯放在其中 2&#xff0e; 通過實現Runnable接口&#xff0c;實例化Thread類 在實際應用中&#xff0c;我們經常用到多線程&#xff0c;…

【VMware vSAN 6.6】6.2.啟用性能服務:vSAN硬件服務器解決方案

目錄 1. 簡介 1.1.適用于HCI的企業級存儲2. 體系結構 2.1.帶有本地存儲的服務器2.2.存儲控制器虛擬系統套裝的缺點2.3.vSAN在vSphere Hypervisor中自帶2.4.集群類型2.5.硬件部署選項3. 啟用vSAN 3.1.啟用vSAN3.2.輕松安裝3.3.主動測試4. 可用性 4.1.對象和組件安置4.2.重新構建…