matlab --- 圖像處理基礎

MATLAB圖像處理

1. 數字圖像處理

參考

數字圖像處理(Digital Image Processing)又稱為計算機圖像處理,是一種將圖像信號數字化利用計算進行處理的過程。隨著計算機科學、電子學和光學的發展,數字圖像處理已經廣泛的應用到諸多領域之中。本小節主要介紹圖像的概念、分類和數字圖像處理的產生以及數字圖像處理的研究的內容。

1.1 什么是圖像

圖像: 是三維世界在二維平面的表示,具體來說就是光學器件對一個物體,一個人或是一個場景等的可視化表示。圖像中包含了它所表達的事物的大部分信息,據有關資料表示,人類所獲得的大部分信息來源于視覺系統,也就是從圖像中獲得的。

1.2 圖像的分類

根據圖像的屬性不同,圖像分類方法也不同。從獲取方式上圖像分為拍攝類圖像和繪制類圖像;從顏色上圖像分為彩色圖像、灰度圖像和黑白圖像等;從圖像的內容上圖像分為人物圖像,風景圖像等;從功能上又分為流程圖、結構圖、心電圖、電路圖、設計圖等。

在數字圖像處理領域,將圖像分為模擬圖像和數字圖像兩種,計算機處理的信號都是數字信號,所以在計算機上處理的圖像均為數字圖像。根據數字圖像在計算機中表示方法不同,分為二進制圖像,索引圖像,灰度圖像,RGB圖像和多幀圖像;根據計算機中圖像文件格式不同,圖像又分為位圖和矢量圖。可見,圖像的屬性是多角度的,圖像的分類也是多維的。

1.3 數字圖像的產生

數字圖像的產生主要有兩種渠道,一種是通過數碼照相機這樣的設備直接拍攝得到數字圖像,還有一種是通過圖像采集卡、掃描儀等數字化設備,將模擬圖像變為數字圖像。

模擬圖像轉換成數字圖像: 首先將圖像分割成8 * 8 個各自,用數字0表示全是黑色,用數字8表示全是白色.(1~7表示黑色的多少)

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8sz0hYdL-1589099849936)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510022601671.png)]

1.4 數字圖像處理的研究內容

數字圖像處理的研究內容主要有以下方向:

  1. 圖像運算與變換

在這里插入圖片描述

  1. 圖像增強

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-SAKFB5mC-1589099849943)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510022828717.png)]

  2. 圖像復原

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LoHJFAps-1589099849948)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510022857776.png)]

  3. 圖像的銳化處理及邊緣檢測

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wV1z0jvR-1589099849951)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510022922154.png)]

  4. 圖像分割: 將感興趣的區域分割出來,進行研究

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Dh35zLMo-1589099849954)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510023000027.png)]

  5. 圖像編碼壓縮

2. 圖像的表示方法

圖像的表示方法是對圖像處理算法描述和利用計算機處理圖形的基礎。一個二維圖像,在計算機中通常為一個二維數組f(x, y), 或者是一個M * N 的二維矩陣,其中, M為圖像的行數, N為圖像的列數。

2.1 二進制圖像

二進制圖像也稱為二值圖像,通常用一個二維數組來描述,1位表示一個像素,組成圖像的像素值非0即1,沒有中間值,通常0表示黑色,1表示白色。二進制圖像一般用來描述文字或者圖形,其優點是占用空間少,缺點是當表示人物或風景圖形時只能描述輪廓。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Cm0NWrhY-1589099849955)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510023615089.png)]

2.2 灰度圖像

灰度圖像也稱為單色圖像,通常也是由一個二維數組表示一副圖像,8位表示一個像素,0表示黑色,255表示白色,1~254表示不同的深淺灰色。通常灰度圖像顯示了黑色與白色之間許多級的顏色深度,比人眼所能識別的顏色深度范圍要寬的多。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UZMa5ke5-1589099849956)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510023930770.png)]

2.3 RGB圖像

RGB圖像也稱為真彩色,是一種彩色圖像的表示方法,利用3個大小相同的二維數組表示一個像素,3個數組分別代表R、G、B三個分量,R表示紅色,G表示綠色,B表示藍色,通過三種基本顏色可以合成任意顏色。每個像素中的每種顏色分量占8位,每一位由[0, 255]中的任意數值表示,那么一個像素由24位表示,允許的最大值為2^24(即1677216,通常記為16M)

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-sOwnjPmJ-1589099849958)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510024316801.png)]

2.4 索引圖像

索引圖像是一種把像素值直接作為RGB調色版下標的圖像。在MATLAB中,索引圖像包含一個數據矩陣X和一個顏色映射(調色板)矩陣map。數據矩陣可以是8位無符號整型、16位無符號整型或雙精度類型的。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wmvWEthA-1589099849959)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510024550359.png)]

3. 圖像的數據結構

數字圖像處理常用的數據結構有矩陣,鏈表,拓撲結構和關系結構。圖像的數據結構用于目標表示和描述。本節主要介紹矩陣、鏈表、拓撲結構和關系結構描述圖像、圖像的邊界、區域和區域之間的關系。

3.1 矩陣

矩陣用于描述圖像,可以表示黑白圖像、灰度圖像和彩色圖像。矩陣中的一個元素表示圖像的一個像素。矩陣描述黑白圖像時,矩陣中的元素取值只有0和1兩個值,因此黑白圖像又叫二值圖像或二進制圖像。矩陣描述灰度圖像時,矩陣中的元素由一個量化的灰度級描述,灰度級通常為8位,即0~255之間的整數,其中0表示黑色,255表示白色。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fLEmzXbY-1589099849960)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510025057365.png)]

3.2 RGB彩色圖像

RGB彩色圖像是由三原色紅、綠、藍組成的,RGB圖像的每個像素都是由不同灰度級的紅、綠、藍描述的,每種單色的灰度描述同灰度圖像的描述方式相同。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yMR1IxcL-1589099849962)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510025355520.png)]

鏈碼用于描述目標圖像的邊界,通過規定鏈的起始坐標和鏈起始點坐標的斜率用一小段線段來表示圖像中的曲線。鏈碼按照標準方向的斜率分為4向鏈碼或8向鏈碼。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UpSr1gcP-1589099849964)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510025736776.png)]

3.3 拓撲結構

拓撲結構**用于描述圖像的基本結構,通常在于形態的圖像處理或是二值圖像中,用于描述目標事件發生的次數,在一個目標事件中有多少孔洞,有多少聯通區域等。在圖像中定義相鄰的概念,一個像素與它周圍的像素組成一個鄰域

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-3jevTlPC-1589099849965)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510160609948.png)]

在圖像中,目標事件上的兩個像素點如果可以用一個像素序列聯通。連接像素p和q的都是4-鄰域像素點,則p和q稱為4-連通,連接p和q的都是8鄰域像素點,則p和q稱為8-連通。如果一個像素集合中的所有像素點都是4連通,則這個集合稱為4-組元,如果一個像素集合的所有像素都是8連通,則這個集合稱為8-組元。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-DdBozOZv-1589099849965)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510161026877.png)]

3.4關系結構

關系結構用于描述一組目標物體之間的相互關系,常用的描述方法為傳描述和樹描述。串描述是一種一維結構,當用串描述圖像時,需要建立一種合適的映射關系,將二維圖像降為一維形式。串描述適用于那些圖像元素的鏈表的連接可以用來從頭到尾或用其他連續形式的圖像元素的描述。鏈碼表示就是基于串描述思想描述的。

樹描述:是一種能夠對不連接區域進行很好描述的方法。樹是一個或一個以上節點的有限集合

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wYQtJjcl-1589099849966)(C:\Users\54328\AppData\Roaming\Typora\typora-user-images\image-20200510161738400.png)]

4. 計算機中圖像文件格式

數字圖像在計算機中存儲的格式有多種多樣,每一個文件格式都包括一個頭文件和一個數據文件。頭文件的內容由制作圖像的公司規定,一般包括文件類型、制作時間,文件大小制作人及版本號等信息。文件制作時還涉及到圖像的壓縮和存儲效率等。

4.1 BMP文件格式

BMP文件格式是Windows系統中的一種標準圖像文件格式,支持RGB、索引顏色、灰度和位圖顏色模式。BMP文件一共有兩種類型,設備相關位圖(DDB)和設備無關位圖(DIB)。Windows3.0及以前的BMP文件格式與顯示設備有關,因此把這種BMP文件格式稱為設備相關位圖DDB(device-dependent bitmap)文件格式。Windows3.0 以后的BMP文件與顯示設備無關,因此把這種BMP圖像文件格式稱為與位圖無關DIB(device-independent bitmap)格式。BMP文件默認的文件擴展名是.BMP或.bmp。

4.2 GIF文件格式

  • GIF文件格式是CompuServe公司在1987年開發的圖像文件格式,任何商業目的使用均須由CompuServe公司授權。
  • GIF文件主要是為數據流設計一種傳輸格式,不作為文件的存儲格式,它具有順序的結構形式。GIF文件主要由5部分組成:
    • 文件標志塊: 標識"GIF"和版本號;
    • 邏輯屏幕描述塊: 定義圖像顯示區域的參數,包含背景顏色信息、顯示區域大小、縱橫尺寸、顏色深淺以及是否存在全局彩色表;
    • 全局彩色表: 其大小由圖像使用的顏色決定;
    • 圖像數據塊: 包含圖像的描述塊,局部彩色表,壓縮圖像數據,圖像控制塊,無格式文本擴展塊,注釋擴展塊,應用程序擴展塊,此部分可以缺省;
    • 尾塊: 為三維16進制數,表示數據流以及結束,此部分可以缺省。

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

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

相關文章

java 注解默認值

package com.zejian.annotationdemo;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/** * Created by wuzejian on 2017/5/19. * 數據類型使用Demo */T…

[python、flask] - POST請求

1. 微信小程序POST傳遞數據給flask服務器 小程序端 // 提交POST數據 import { request } from "../../request/index.js"async handleDetectionPoints() {let params {url: "/detect_points",data: {"points": arr,"img_name": thi…

[vue]data數據屬性及ref獲取dom

data項的定義 this.$refs獲取dom 獲取不到數據 這樣中轉下才ok 小結: data里不能用this.$ref. 另外使用visjs時候 view-source:http://visjs.org/examples/network/basicUsage.html 加載不出東西,點了按鈕觸發才ok 小結: create里應該是從上到下執行的. 轉載于:https://www.cnb…

Linux命令基礎3

1. 計劃任務&#xff1a;分為”一次性“ 和”長期性“ 一次性任務是由atq服務/進程來實現的&#xff0c;計劃的管理操作是at命令&#xff1a; at <時間> : 安排一次性任務 atq 或at -l &#xff1a; 查看任務列表 at -c 序號&#xff1a; 預覽任務與設置環境 atrm 序號…

[異步、tensorflow] - 子線程操作tensor,主線程處理tensor

參考整體流程如下圖 代碼 import tensorflow as tf"""模擬: 子線程不停的取數據放入隊列中, 主線程從隊列中取數據執行包含: 作用域的命名、把程序的圖結構寫入事件、多線程 """# 模擬異步存入樣本. # 1、 定義一個隊列,長度為1000 with tf.va…

Element

官網&#xff1a;http://element-cn.eleme.io/#/zh-CN 轉載于:https://www.cnblogs.com/weibanggang/p/9995433.html

ubuntu18.04下安裝Anaconda及numpy、matplotlib

為了學習深度學習&#xff0c;我需要首先掌握利用python進行科學計算的知識&#xff0c;順便復習一下線性代數、微積分、概率論。當然&#xff0c;現在我要做的是安裝Anaconda。 1、官網下載&#xff0c;linux版本&#xff1a;https://www.anaconda.com/download 2、如果太慢&a…

[tensorflow] - csv文件讀取

參考 文件流程 csv讀取流程 函數的流程 import tensorflow as tf import os"""tensorflow中csv文件的讀取1、 先找到文件,構造一個列表2、 構造一個文件隊列3、 讀取(read)隊列內容csv: 讀取一行二進制文件: 指定一個樣本的bytes讀取圖片文件: 按一張一張…

課程模塊表結構

課程模塊 我們要開始寫課程模塊了~~課程模塊都有哪些功能呢~~ 我們的課程模塊&#xff0c;包括了免費課程以及專題課程兩個方向~~ 主要是課程的展示&#xff0c;點擊課程進入課程詳細頁面~~ 課程詳細頁面展示&#xff0c;課程的概述&#xff0c;課程的價格策略&#xff0c;課程…

vue中computed、metfods、watch的區別

一、computed和methods 我們可以將同一函數定義為一個 method 或者一個計算屬性。對于最終的結果&#xff0c;兩種方式確實是相同的。 不同的是computed計算屬性是基于它們的依賴進行緩存的。計算屬性computed只有在它的相關依賴發生改變時才會重新求值。這就意味著只要計算依賴…

OI生涯回憶錄(二)

&#xff08;二&#xff09;NOIP2016之后到HLOI2017 之后變得有點頹廢&#xff0c;因為有的地方難度上來了&#xff0c;碰見不會的題我就會放挺。又或者有時候題水&#xff0c;改完了就不思進取了。到了過年前那幾天連著考了幾天試&#xff0c;好像是長春那邊冬令營&#xff08…

[tensorflow、神經網絡] - 使用tf和mnist訓練一個識別手寫數字模型,并測試

參考 包含: 1.層級的計算、2.訓練的整體流程、3.tensorboard畫圖、4.保存/使用模型、5.總體代碼(含詳細注釋) 1. 層級的計算 如上圖,mnist手寫數字識別的訓練集提供的圖片是 28 * 28 * 1的手寫圖像,初始識別的時候,并不知道一次要訓練多少個數據,因此輸入的規模為 [None, 784].…

面向過程、面向函數、面向對象的區別淺談

Python的面向過程、面向函數、面向對象的區別淺談 轉自--獵奇古今&#xff0c;加上其他 有人之前私信問我&#xff0c;python編程有面向過程、面向函數、面向對象三種&#xff0c;那么他們區別在哪呢&#xff1f; 面向過程就是將編程當成是做一件事&#xff0c;要按步驟完成&am…

js算法初窺06(算法模式03-函數式編程)

在解釋什么是函數式編程之前&#xff0c;我們先要說下什么是命令式編程&#xff0c;它們都屬于編程范式的一種。命令式編程其實就是一塊一塊的代碼&#xff0c;其中包括了我們要執行的邏輯或者判斷或者一些運算。也就是按部就班的一步一步完成我們所需要的邏輯。而函數式編程則…

[mmdetection] - win10配置mmdetection(1.1和2.0) + 訓練網絡(faster-rcnn、mask-rcnn)

pytorch配置 - 參考 mmdetextion 配置(win10) mmdetection訓練faster-rcnn (win10) mmdetection訓練mask-rcnn (win10) mmdetection 2.0配置(win10) mmdetection 2.0訓練Faster-RCNN&#xff08;win10) mmdetection 2.0全家桶訓練&#xff08;終結版) labelme安裝教程 l…

13、Spring Boot 2.x 多數據源配置

1.13 Spring Boot 2.x 多數據源配置 完整源碼&#xff1a; Spring-Boot-Demos轉載于:https://www.cnblogs.com/Grand-Jon/p/9999779.html

[pytorch、學習] - 3.5 圖像分類數據集

參考 3.5. 圖像分類數據集 在介紹shftmax回歸的實現前我們先引入一個多類圖像分類數據集 本章開始使用pytorch實現啦~ 本節我們將使用torchvision包,它是服務于PyTorch深度學習框架的,主要用來構建計算機視覺模型。torchvision主要由以下幾部分構成: torchvision.datasets: …

python自動化第三周---文件讀寫

1.python文件對象提供了三個“讀”方法&#xff1a; read()、readline() 和 readlines()。每種方法可以接受一個變量以限制每次讀取的數據量。 read() 每次讀取整個文件&#xff0c;它通常用于將文件內容放到一個字符串變量中。如果文件大于可用內存&#xff0c;為了保險起見&a…

最詳細的java泛型詳解

來源&#xff1a;最詳細的java泛型詳解 對java的泛型特性的了解僅限于表面的淺淺一層&#xff0c;直到在學習設計模式時發現有不了解的用法&#xff0c;才想起詳細的記錄一下。 本文參考java 泛型詳解、Java中的泛型方法、 java泛型詳解 1. 概述 泛型在java中有很重要的地位&a…

[pytorch、學習] - 3.6 softmax回歸的從零開始實現

參考 3.6 softmax回歸的從零開始實現 import torch import torchvision import numpy as np import sys sys.path.append("..") import d2lzh_pytorch as d2l3.6.1. 獲取和讀取數據 batch_size 256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_si…