視覺圖像處理中級篇 [1]—— 彩色照相機的效果與預處理

在工業檢測中,黑白相機雖應用廣泛,但在應對顏色差異檢測時往往力不從心。彩色照相機憑借其對色彩信息的精準捕捉,成為復雜場景下的理想選擇,而預處理技術則進一步釋放了其性能潛力。

一、彩色照相機的效果

檢查蓋子上的金色標簽

可以看到,當工件表面為有光澤的曲面時,使用黑白照相機并不能得到類似人眼所觀察到的圖像處理效果。?從上面的實物圖像可以看到,造成這種現象的原因是標簽的亮度不均勻。

如果使用彩色照相機,就可以如右圖一樣,只提取標簽的金色部分。

這是因為,與采用亮度作為處理標準的黑白照相機不同,彩色照相機使用色相(色調)數據進行圖像處理。

二、彩色照相機是什么?

對于使用圖像傳感器的彩色照相機,其中一種是俗稱 ?單板式 ??CCD。為了得到彩色?圖像,需要三原色(RGB)信息。CCD??的每一個像素都貼有一種三原色( RG??或 ??B??的濾鏡。這樣,每個像素就可以將?RG??B??256?級濃淡數據傳送給控制器,控制器利用這些數據進行彩色圖像處理。

【關于比色體系】

一種用數值表示顏色的體系,通常用含有三個軸的三維圖表加以表示。

比色系統有許多種類,其中采用色調(Hue)、飽和度(Saturation)及亮?度(Value)等 3 要素的HSV模式接近人眼的觀察效果,因此適于圖像處理。

三、彩色二值化處理

彩色相機的核心優勢在于其能捕捉 RGB 三原色的 256 級濃淡信息,形成 1677 萬級顏色數據,遠超黑白相機的 256 級灰度范圍。單板式 CCD 的每個像素都覆蓋 RGB 濾鏡,能分別感應三原色光,再通過 HSV 色彩模式(色調、飽和度、亮度)處理,更貼近人眼的色彩感知,適合檢測金色標簽、彩色導線等場景。

彩色二值化處理是彩色相機的重要應用技術,能從千萬級顏色中精準提取目標顏色范圍。例如,檢測線圈中綠色導線的斷線時,通過提取綠色并二值化,可清晰顯示斷線位置;在混合螺絲中計數金色螺絲,彩色二值化能有效區分金色與銀色,而這是黑白相機難以實現的。

四、彩色濃淡處理

彩色照相機的信息量是黑白照相機的?8?萬倍。如果對于這些信息都進行處理,則需要大量的時間。而用于高速生產線的圖像?傳感器需要以百分之一秒的時間單位進行圖像處理。另外,在一些不適于采用二值化處理的應用中(例如形狀搜索、表面損傷?檢查等),由于信息量過大,會形成干擾,從而使特征點變得不清晰。為了解決這些問題,開發了一種新的預處理功能,即“?色濃淡處理?

在檢測上圖的左圖所示的淺色圖案時,如使用黑白濃淡處理,則只能得到非常淡的圖像。但是采用基于顏色數據的彩色濃淡處理后,可以看到,背景成為黑色,淡色部位可以清晰地轉換為灰色的圖案。在進行標記形狀差異或錯位檢查時,兩種處理在效果上的差異一目了然。

五、通過照相機增益調整來優化圖像

增益調整是優化圖像的方法之一。對于彩色照相機來說,增益調整可以分別調整?RGB?三種顏色,因此可以使紅色變得更?紅、藍色變得更藍、而綠色則變得更綠。在區分顏色時,這種調整可以起到良好的效果。

但海量顏色數據會增加處理時間,針對這一問題,彩色濃淡處理技術應運而生。它將彩色圖像轉換為以目標顏色為最高亮度的 256 級灰度圖,在保留顏色特征的同時,大幅減少數據量,滿足高速生產線的檢測需求。例如,檢測淺色圖案時,彩色濃淡處理能讓淺色部位與黑色背景形成鮮明對比,便于形狀差異識別。

各種圖像傳感器根據其使用目的的不同,會具有不同的預處理功能。利用這些功能,可以將圖像轉換成適宜的圖像。?這些功能不僅適用于黑白照相機,同時還適用于經彩色二值化處理、彩色濃淡處理后的彩色照相機。

下面將介紹其中幾種預處理功能。

在實際應用中,彩色相機與預處理技術的結合,能解決傳統黑白相機無法應對的復雜檢測任務。例如,在高反光曲面工件上檢測金色標簽,彩色相機可忽略亮度干擾,僅通過色調識別標簽,大幅提升檢測穩定性。

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

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

相關文章

使用 BERT 的 NSP 實現語義感知切片 —— 提升 RAG 系統的檢索質量

在構建 Retrieval-Augmented Generation(RAG)系統時,文檔的切片方式至關重要。我們需要將長文本切分成合適的段落(chunks),然后存入向量數據庫進行召回。如果切得太粗,會丟失上下文細節&#xf…

使用STM32CubeMX生成的STM32CubeIDE工程在更改工程名后編譯失敗問題解決

0 問題描述 使用STM32CubeMX生成STM32CubeIDE工程,然后使用STM32CubeIDE改名后編譯提示如下錯誤: 1 問題原因及解決辦法 1.1 問題原因 原因在于更名后STM32CubeIDE沒有自動更新引用關系,這是因為我們使用STM32CubeMX生成代碼時沒有勾選在根目錄下生成: 取消勾選在根目…

8月3日星期日今日早報簡報微語報早讀

8月3日星期日,農歷閏六月初十,早報#微語早讀。1、廣西防城港:奔馳女司機身份已查清,結果將統一對外發布;2、陳藝文、陳佳包攬游泳世錦賽女子跳水三米板金銀牌;3、九省份保險業已賠付暴雨災害損失5.2億元&am…

wxPython 實踐(六)對話框

wxPython 實踐(一)概述 wxPython 實踐(二)基礎控件 wxPython 實踐(三)頁面布局 wxPython 實踐(四)事件響應 wxPython 實踐(五)高級控件 wxPython 實踐&#x…

MATLAB科研數據可視化技術

互聯網的飛速發展伴隨著海量信息的產生,而海量信息的背后對應的則是海量數據。如何從這些海量數據中獲取有價值的信息來供人們學習和工作使用,這就不得不用到大數據挖掘和分析技術。數據可視化分析作為大數據技術的核心一環,其重要性不言而喻…

文明存續的時間博弈:論地球資源枯竭臨界期的技術突圍與行動緊迫性

摘要當地球資源消耗以指數級速度逼近生態承載力極限,人類文明正面臨“存續還是消亡”的終極抉擇。本文基于地球資源枯竭的實證數據與技術突破的可行性分析,揭示文明存續的時間窗口已進入不可逆臨界期(2040-2070年),論證…

Elasticsearch 8.19.0 和 9.1.0 中 LogsDB 和 TSDS 的性能與存儲改進

作者:來自 Elastic Martijn Van Groningen 探索 TSDS 和 LogsDB 的最新增強功能,包括優化 I/O、提升合并性能等。 Elasticsearch 帶來了許多新功能,幫助你為你的使用場景構建最佳搜索解決方案。通過我們的示例筆記本深入學習,開始…

cs336之注意pytorch的tensor在哪里?(assert的使用)

問題 記住:無論何時你在pytorch中有一個張量tensor,你應該始終問一個問題:它當前位于哪里? 注意它在CPU還是在GPU中。要判斷它在哪里,可以使用python的assert斷言語句。 assert斷言 在 Python 中,assert 是…

Mysql 分區表

分區表是將一張表分成多張獨立子表,每個子表是一個區,目的是提高查詢效率。 從 server 層來看,只有一張表。但是從引擎層來看,是多張表,對應多個.idb文件。引擎層訪問數據只訪問特定分區表,也只對特定分區表…

Makefile 入門與實踐指南

Makefile 是用于 make 工具的配置文件,它定義了如何編譯和鏈接你的項目,讓構建過程自動化。一、核心概念 make 的核心思想是 “目標”(Target) 和 “依賴”(Dependencies): 目標 (Target)&#…

分布式微服務--Nacos作為配置中心(補)關于bosststrap.yml與@RefreshScope

一、關于bosststrap.yml? bootstrap.yml 和 application.yml 的區別對比項bootstrap.ymlapplication.yml加載時機優先于 application.yml 加載(啟動早期)程序初始化完成后加載主要用途設置應用的外部配置源、注冊中心信息等設置應用內部配置&#xff0c…

[Qt]QString 與Sqlite3 字符串互動[漢字不亂碼]

環境:Qt C(msvc c)1.將與數據庫交互的代碼文件編碼轉換為utf-8-bom編碼,(可使用notepad 進行轉換)2.在代碼文件頭文件中加上下面代碼。//vs2010 版本是 1600 #if defined(_MSC_VER) && (_MSC_VER &…

SpringBoot啟動項目詳解

SpringBoot 的啟動過程是一個整合 Spring 核心容器、自動配置、嵌入式服務器等功能的復雜流程,核心目標是 “簡化配置、快速啟動”。下面從入口類開始,逐步拆解其詳細啟動步驟:一、啟動入口:SpringBootApplication與main方法Sprin…

PCB 控深槽如何破解 5G 基站 120℃高熱魔咒?

5G 基站在高頻通信下的功耗較 4G 基站提升 3-4 倍,射頻模塊、電源單元等核心部件的工作溫度常突破 120℃,遠超設備安全閾值(≤85℃),形成制約通信穩定性的 “高熱魔咒”。印制線路板(PCB)作為熱…

NEXT.js 打包部署到服務器

在網上查了一下,記錄一下1.首先執行打包命令,我這個項目是用的pnpm,可以根據項目需求使用 npm 或者別的pnpm run build2.打包完成后會有一個 .next 的文件夾,需要把下圖的這些文件放到服務器。服務器需要有node環境之后就需要執行…

【AI分析】uv庫自動安裝腳本uv-installer-0.8.3.ps1分析

目錄uv 安裝腳本完整分析報告1. 腳本概述2. 參數解析3. 環境變量控制4. 核心函數詳解a. Install-Binary(主控函數)b. Get-TargetTriple(架構檢測)c. Download(下載處理)d. Invoke-Installer(安裝…

etcd 的安裝與使用

介紹 Etcd 是一個 golang 編寫的分布式、高可用的一致性鍵值存儲系統,用于配置共享和服 務發現等。它使用 Raft 一致性算法來保持集群數據的一致性,且客戶端通過長連接 watch 功能,能夠及時收到數據變化通知,相較于 Zookeeper 框…

conda : 無法將“conda”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正

詳細問題 PS C:\Users\wh109> conda init powershell conda : 無法將“conda”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正 確,然后再試一次。 所在位置 行:1 字符: 1conda init pow…

HQChart實戰教程58:K線主圖仿TradingView實現

本文將詳細介紹如何使用HQChart實現類似TradingView風格的K線主圖,包含完整的代碼實現和詳細注釋,適合金融圖表開發者和量化交易愛好者閱讀。 一、TradingView風格特點分析 在開始實現前,我們先分析TradingView的K線主圖核心特點: 簡潔現代的UI設計:深色背景、清晰的網格…

GitPython08-源碼解讀

GitPython08-源碼解讀 1-核心知識 1)gitPython核心代碼很多都是對git命令返回的結果進行解析,在此補充git命令的返回內容2)git ls-tree -> 查看某個提交或分支所對應的目錄樹3)源碼中Tree對應的業務邏輯 -> 獲取git ls-tre…