halcon自動對焦算法

1、介紹

圖像清晰度是衡量圖像質量的一個重要指標,對于相機來說,其一般工作在無參考圖像的模式下,所以在拍照時需要進行對焦的控制。對焦不準確,圖像就會變得比較模糊不清晰。相機對焦時通過一些清晰度評判指標,控制鏡頭與CCD的距離,使圖像成像清晰。一般對焦時有一個調整的過程,圖像從模糊到清晰,再到模糊,確定清晰度峰值,再最終到達最清晰的位置。

常見的圖像清晰度評價一般都是基于梯度的方法,本文將介紹五種簡單的評價指標,分別是Brenner梯度法、Tenegrad梯度法、laplace梯度法、方差法、能量梯度法。

2、Halcon代碼

①、Tenegrad函數
在這里插入圖片描述

//Tenegrad梯度法
sobel_amp(Image, EdgeAmplitude, 'sum_sqrt', 3)
min_max_gray(EdgeAmplitude, EdgeAmplitude, 0, Min, Max, Range)
threshold(EdgeAmplitude, Region1, 20, 255)
region_to_bin(Region1, BinImage, 1, 0, Width, Height)
mult_image(EdgeAmplitude, BinImage, ImageResult4, 1, 0)
mult_image(ImageResult4, ImageResult4, ImageResult, 1, 0)
intensity(ImageResult, ImageResult, Value, Deviation)

②、方差函數
在這里插入圖片描述

//方差法
region_to_mean(ImageReduced, Image, ImageMean)
convert_image_type(ImageMean, ImageMean, 'real')
convert_image_type(Image, Image, 'real')
sub_image(Image, ImageMean, ImageSub, 1, 0)
mult_image(ImageSub, ImageSub, ImageResult, 1, 0)
intensity(ImageResult, ImageResult, Value, Deviation)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

③、能量函數
在這里插入圖片描述
在這里插入圖片描述

//能量梯度函數
crop_part(Image, ImagePart00, 0, 0, Width-1, Height-1)
crop_part(Image, ImagePart01, 0, 1, Width-1, Height-1)
crop_part(Image, ImagePart10, 1, 0, Width-1, Height-1)
convert_image_type(ImagePart00, ImagePart00, 'real')
convert_image_type(ImagePart10, ImagePart10, 'real')
convert_image_type(ImagePart01, ImagePart01, 'real')
sub_image(ImagePart10, ImagePart00, ImageSub1, 1, 0)
mult_image(ImageSub1, ImageSub1, ImageResult1, 1, 0)
sub_image(ImagePart01, ImagePart00, ImageSub2, 1, 0)
mult_image(ImageSub2, ImageSub2, ImageResult2, 1, 0)
add_image(ImageResult1, ImageResult2, ImageResult, 1, 0)
intensity(ImageResult, ImageResult, Value, Deviation)

④、Brenner函數
在這里插入圖片描述

//Brenner梯度法
crop_part(Image, ImagePart00, 0, 0, Width, Height-2)
convert_image_type(ImagePart00, ImagePart00, 'real')
crop_part(Image, ImagePart20, 2, 0, Width, Height-2)
convert_image_type(ImagePart20, ImagePart20, 'real')
sub_image(ImagePart20, ImagePart00, ImageSub, 1, 0)
mult_image(ImageSub, ImageSub, ImageResult, 1, 0)
intensity(ImageResult, ImageResult, Value, Deviation)

⑤、Laplace函數
在這里插入圖片描述

//拉普拉斯梯度函數
laplace(Image, ImageLaplace4, 'signed', 3, 'n_4')
laplace(Image, ImageLaplace8, 'signed', 3, 'n_8')
add_image(ImageLaplace4, ImageLaplace4, ImageResult1, 1, 0)
add_image(ImageLaplace4, ImageResult1, ImageResult1, 1, 0)
add_image(ImageLaplace8, ImageResult1, ImageResult1, 1, 0)
mult_image(ImageResult1, ImageResult1, ImageResult, 1, 0)
intensity(ImageResult, ImageResult, Value, Deviation)

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

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

相關文章

HTML學習筆記06-連接

HTML超鏈接 HTML使用標簽<a>來設置文本超鏈接。 超鏈接可以是文字&#xff0c;也可以是圖片&#xff0c;點擊這些內容跳轉到新的文檔或當前文檔的某個部分 代碼類似這樣&#xff1a; <a href"url">連接文本</a> 實例&#xff1a; <!DOCTYPE HTM…

在Xcode中使用Git進行源碼版本控制

在Xcode中使用Git進行源碼版本控制 在應用程序開發過程中&#xff0c;很重要的一部分工作就是如何進行源碼的版本控制。當代碼出現問題時&#xff0c;我們就需要將代碼恢復到原先正常的版本。如果是多個人共同開發一個項目&#xff0c;那么代碼的控制就會非常復雜。幸運的是&am…

Linux環境變量的設置和查看方法

1. 顯示環境變量HOME $ echo $HOME /home/redbooks 2. 設置一個新的環境變量hello $ export HELLO"Hello!" $ echo $HELLO Hello! 3. 使用env命令顯示所有的環境變量 $ env HOSTNAMEredbooks.safe.org PVM_RSH/usr/bin/rsh Shell/bin/bash TERMxterm HISTSIZE1000 ..…

CefSharp試用

Github地址&#xff1a; https://github.com/cefsharp/CefSharp 首先下載所有源代碼下來 然后直接打開Sln 然后就可以直接調試WinForm、Wpf的Example了 注意地方&#xff1a; CefSharp.Core、CefSharp.BrowserSubprocess.Core 這兩個類庫是用C寫的&#xff0c;所以VisualStudio…

ORA-30649: 缺少DIRECTORY關鍵字的問題解決方法

在oracle 里執行該語句時 提示 ORA-30649: 缺少 DIRECTORY 關鍵字把NOT null 放到 default 后面&#xff0c;就是如下寫法&#xff0c;oracle 正常執行alter table PM_INFO ADD sort NUMBER(10,0) DEFAULT (0) NOT NULL;轉載于:https://www.cnblogs.com/person008/p/9234637.ht…

java 解決漢諾塔問題

//漢諾塔問題//HanYang 2016/10/15 import java.util.Scanner; //輸出public class Hanuota { public static void Show(String a,String b){ System.out.print(" " a "->" b " " ); } //從a移到c public static void Fun(int n, Str…

利用VC++實現局域網實時傳輸

本文針對不同的局域網&#xff0c;提出一種通用的實時視頻傳輸的解決方案。在使用Divx編解碼的基礎上&#xff0c;提出了從壓縮、組幀、發送到接收、解壓整個流程的思想&#xff0c;具體實施方案和VC實現核心源代碼以及傳輸控制策略&#xff0c;有效地保證了高質量的實時視頻傳…

ASP.NET Web API之消息[攔截]處理(轉)

出處&#xff1a;http://www.cnblogs.com/Leo_wl/p/3238719.html 標題相當難取&#xff0c;內容也許和您想的不一樣&#xff0c;而且網上已經有很多這方面的資料了&#xff0c;我不過是在實踐過程中作下記錄。廢話少說&#xff0c;直接開始。 Exception 當服務端拋出未處理異常…

無人駕駛遇見人工智能 百度將推有“大腦”的汽車

在日前舉行的中國云計算大會&#xff0c;百度高級副總裁、技術戰略委員會主席王勁表示&#xff0c;百度將在今年下半年推出無人駕駛汽車。不過&#xff0c;百度自己并不會造車&#xff0c;它將與第三方汽車廠商合作制造。據介紹&#xff0c;百度將利用現有的大數據、地圖、人工…

AdlinkMotionCardLibrary函數C++

#include "stdafx.h" #include "AdlinkMotionCardLibrary.h"extern "C" _declspec(dllexport) bool _stdcall MotionCardIni(I32& BoardId_InBits, I32 Mode) { try{//mode0&#xff1a;&#xff1a; 系統指定卡號 mode1&#xff1a;&am…

查看表的結構

describe 表名轉載于:https://www.cnblogs.com/dengyg200891/p/5966565.html

定制一個網絡文件系統

定制一個網絡文件系統【把pc上的文件系統掛接到開發板上面】 1、修改exports文件【PC上】一定要修改&#xff0c;否則不會成功 vi /etc/exports 修改為 /空格* 并保存 2、設置開發板上的IP地址 ifconfig eth0 192.168.0.11 up 3、設置PC上的IP地址 ifconfig et…

創建Hbase Hive外部表報錯: Unable to determine ZooKeeper ensemble

創建HBase的Hive外部表1: create external table ttt(rowkey string,info map<string,string>)STORED BY org.apache.hadoop.hive.hbase.HBaseStorageHandler WITH SERDEPROPERTIES ("hbase.columns.mapping" ":key,info:") TBLPROPERTIES ("h…

死磕算法之快速排序

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。博客源地址為zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80851021 學習更多算法系列請參考文章&#xff1a;死磕算法之匯總篇 快速排序是一個運用了分治法和遞歸算法的排序方…

九點標定進行仿射變換halcon仿真代碼

篩選出來的點得坐標已經顯示在PxRow、PxColunm里邊 * Image Acquisition 01: Code generated by Image Acquisition 01 read_image (Image, C:/Users/Administrator/Desktop/標定板圖片.png) dev_close_window () dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHand…

用SQL語句添加刪除修改字段_常用SQL

1.增加字段 alter table docdsp add dspcodechar(200)2.刪除字段 ALTER TABLE table_NAME DROP COLUMNcolumn_NAME3.修改字段類型 ALTER TABLE table_name ALTER COLUMNcolumn_name new_data_type4.sp_rename 改名 EXEC sp_rename [dbo].[Table_1].[fi…

DAVINCI開發原理之三----達芬奇編解碼引擎Codec Engine(CE)

DaVinci是DSP和ARM 雙核架構的SOC芯片。對芯片與外界的交互通過ARM端的Montavista Linux和相關驅動與應用程序來管理&#xff0c; DSP端只處理編解碼相關的算法。DSP和ARM之間的通訊和交互是通過引擎(Engine)和服務器(Server)來完成的。1. 編解碼引擎(Codec Engine) a. 核心引…

Windows操作系統安全加固

本文檔旨在指導系統管理人員或安全檢查人員進行Windows操作系統的安全合規性檢查和配置。 1. 賬戶管理和認證授權 1.1 賬戶 默認賬戶安全 禁用Guest賬戶。禁用或刪除其他無用賬戶&#xff08;建議先禁用賬戶三個月&#xff0c;待確認沒有問題后刪除。&#xff09;操作步驟 打開…

ios修改了coredata數據結構后,更新安裝會閃退

如果iOS App 使用到CoreData&#xff0c;并且在上一個版本上有數據庫更新&#xff08;新增表、字段等操作&#xff09;&#xff0c;那在覆蓋安裝程序時就要進行CoreData數據庫的遷移&#xff0c;具體操作如下&#xff1a; 1.選中你的mydata.xcdatamodeld文件&#xff0c;選擇菜…

TI DAVINCI開發原理(總共5部分)

2011-06-03 11:14:17| 分類&#xff1a; TI 達芬奇視頻處 | 標簽&#xff1a; |字號大中小訂閱 DAVINCI開發原理之一----ARM端開發環境的建立(DVEVM) 1. 對DAVINCI平臺&#xff0c;TI在硬件上給予雙核架構強有力的支撐&#xff0c;在DSP端用DSP/BIOS來支持音視頻算法的運行…