国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《數字圖像處理-OpenCV/Python》連載(10)圖像屬性與數據類型

這篇具有很好參考價值的文章主要介紹了《數字圖像處理-OpenCV/Python》連載(10)圖像屬性與數據類型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

《數字圖像處理-OpenCV/Python》連載(10)圖像屬性與數據類型


本書京東優(yōu)惠購書鏈接:https://item.jd.com/14098452.html
本書CSDN獨家連載專欄:https://blog.csdn.net/youcans/category_12418787.html

《數字圖像處理-OpenCV/Python》連載(10)圖像屬性與數據類型,《數字圖像處理-OpenCV》連載,opencv,python,人工智能,圖像處理,計算機視覺,原力計劃


第2章 圖像的數據格式

在Python語言中,OpenCV以Numpy數組存儲圖像,對圖像的訪問和處理都是通過Numpy數組的操作來實現(xiàn)的。


本章內容概要

  • 介紹Python語言中OpenCV的數據結構,學習獲取圖像的基本屬性。
  • 學習使用Numpy數組實現(xiàn)圖像的創(chuàng)建、復制、裁剪、拼接、拆分與合并的方法。
  • 學習使用查找表(LUT)快速實現(xiàn)像素值的替換。

2.1 圖像屬性與數據類型


2.1.1 圖像顏色分類

按照圖像顏色分類,圖像可以分為二值圖像、灰度圖像和彩色圖像。

  • 二值圖像:只有黑色和白色兩種顏色的圖像。每個像素點的像素值可以用0/1或0/255表示,0表示黑色,1或255表示白色。
  • 灰度圖像:只有灰度的圖像。每個像素點的像素值可以用8bit數字[0, 255]表示灰度級,如0表示純黑,255表示純白。
  • 彩色圖像:彩色圖像可以采用藍色(B)、綠色(G)和紅色(R)三個顏色通道的組合來表示。每個像素點可以用3個 8bit 數字[0, 255]分別表示紅色、綠色和藍色的顏色分量,如(0,0,0) 表示黑色,(0,0,255) 表示紅色,(255,255,255) 表示白色。

OpenCV使用BGR格式讀取圖像解碼后,按B/G/R順序存儲為多維Numpy數組,而PIL、PyQt、Matplotlib等庫使用的是RGB格式。

在數字圖像處理中,可以根據需要對圖像的顏色通道順序進行轉換,或將彩色圖像轉換為灰度圖像和二值圖像。


2.1.2 以Numpy數組表示數字圖像

數字圖像由像素點組成的矩陣來描述,以多維Numpy數組來表示和處理。

OpenCV在C++語言中定義的Mat類,是最基本的圖像存儲格式。在Python語言的API中則基于Numpy庫來存儲和處理多維數組,即以多維Numpy數組來存儲和處理圖像。在Python語言中,OpenCV對圖像的任何操作,本質上都是對多維Numpy數組的操作和運算。

OpenCV中的二值圖像和灰度圖像用二維數組表示,數組的形狀是(h,w),行與列分別表示圖像的高度與寬度。數組中每個元素的值表示對應行/列像素點的灰度值。二值圖像是特殊的灰度圖像,像素值取0/1或0/255。

OpenCV中的彩色圖像用三維數組(h,w,ch) 表示,ch=3表示通道數,數據組織形式如圖2-1所示。數組中的每個元素對應像素點的某種顏色分量值。

OpenCV顏色通道的順序為B/G/R,因此img[:,:,0]表示彩色圖像img的B通道,img[:,:,1]表示G通道,img[:,:,2]表示R通道。

在OpenCV中,圖像的數據結構是Numpy數組,因此Numpy數組的所有屬性和操作方法都適用于OpenCV的圖像對象。例如:

  • img.ndim:查看圖像的維數,彩色圖像的維數為3,灰度圖像的維數為2。
  • img.shape:查看圖像的形狀(h,w,ch),即圖像的行數(高度)、列數(寬度)和通道數。
  • img.size:查看圖像數組元素的總數,即圖像像素的數量與通道數的乘積。

2.1.3 圖像的數據類型

OpenCV函數對于數據類型有嚴格要求,錯誤的數據類型會導致語法錯誤。

OpenCV中圖像數據類型的參數命名格式如下。

CV_{數字位數}{數字類型}C{通道數}

例如,CV_8UC3表示三通道8位無符號整型數據格式的矩陣。

OpenCV數據類型與Numpy數據類型的對照關系如表2-1所示。在圖像處理中,最常用的數據類型是8位無符號整型數據CV_8U,對應的Numpy數據類型是uint8。

推薦在調用Numpy庫函數時使用Numpy數據類型的名稱,而在調用OpenCV函數時使用OpenCV數據類型的名稱,以免發(fā)生錯誤。

使用img.dtype可以獲得Numpy數組的數據類型,使用img.astype可以把圖像的數據類型轉換成指定的Numpy數據類型。


【例程0201】圖像屬性與數據類型轉換

本例程使用Numpy數組的操作方法,獲取圖像屬性和數據格式。


# 【0201】圖像屬性與數據類型轉換
import cv2 as cv
import numpy as np

if __name__ == '__main__':
    # 讀取圖像,支持 BMP、JPG、PNG、TIFF 等常用格式
    filepath = "../images/imgLena.tif"  # 讀取文件的路徑
    img = cv.imread(filepath, flags=1)  # flags=1 讀取彩色圖像(BGR)
    gray = cv.imread(filepath, flags=0)  # flags=0 讀取為灰度圖像

    # 維數(Ndim)、形狀(Shape)、元素總數(Size)、數據類型(Dtype)
    print("Ndim of img(BGR): {}, gray: {}".format(img.ndim, gray.ndim))
    print("Shape of img(BGR): {}, gray: {}".format(img.shape, gray.shape))  # number of rows, columns and channels
    print("Size of img(BGR): {}, gray: {}".format(img.size, gray.size))  # size = rows × columns × channels

    imgFloat = img.astype(np.float32) / 255
    print("Dtype of img(BGR): {}, gray: {}".format(img.dtype, gray.dtype))  # uint8
print("Dtype of imgFloat: {}".format(imgFloat.dtype))  # float32


運行結果:

Ndim of img(BGR): 3, gray: 2
Shape of img(BGR): (512, 512, 3), gray: (512, 512)
Size of img(BGR): 786432, gray: 262144
Dtype of img(BGR): uint8, gray: uint8
Dtype of imgFloat: float32

程序說明:
(1) 彩色圖像是三維Numpy數組,灰度圖像是二維Numpy數組。因此,相同尺寸的彩色圖像與灰度圖像的像素數量相同,但數組元素的數量不同。
(2) 彩色圖像的形狀為(h, w, 3),灰度圖像的形狀為(h, w)。在查看圖像高度和寬度時,推薦使用h, w=img.shape[:2],不推薦使用h, w=img.shape。


本書京東優(yōu)惠購書鏈接:https://item.jd.com/14098452.html


版權聲明:
youcans@xupt 原創(chuàng)作品,轉載必須標注原文鏈接:(https://blog.csdn.net/youcans/article/details/133561857)
Copyright 2023 youcans, XUPT
Crated:2023-10-05

歡迎關注本書CSDN獨家連載專欄
《數字圖像處理-OpenCV/Python》連載: https://blog.csdn.net/youcans/category_12418787.html文章來源地址http://www.zghlxwxcb.cn/news/detail-723625.html

到了這里,關于《數字圖像處理-OpenCV/Python》連載(10)圖像屬性與數據類型的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 《數字圖像處理-OpenCV/Python》連載(44)圖像的投影變換

    《數字圖像處理-OpenCV/Python》連載(44)圖像的投影變換

    本書京東優(yōu)惠購書鏈接:https://item.jd.com/14098452.html 本書CSDN獨家連載專欄:https://blog.csdn.net/youcans/category_12418787.html 幾何變換分為等距變換、相似變換、仿射變換和投影變換,是指對圖像的位置、大小、形狀和投影進行變換,將圖像從原始平面投影到新的視平面。OpenCV圖像的幾

    2024年02月04日
    瀏覽(125)
  • 《數字圖像處理-OpenCV/Python》連載(4)圖像的讀取與保存

    《數字圖像處理-OpenCV/Python》連載(4)圖像的讀取與保存

    本書京東優(yōu)惠購書鏈接:https://item.jd.com/14098452.html 本書CSDN獨家連載專欄:https://blog.csdn.net/youcans/category_12418787.html 為了方便初學者從零開始學習OpenCV-Python,本書從圖像的讀取、保存和顯示等基本操作開始介紹,使讀者可以循序漸進地使用和理解本書的每一個例程。 本章內容

    2024年02月09日
    瀏覽(93)
  • 《數字圖像處理-OpenCV/Python》連載(22)繪制直線與線段

    《數字圖像處理-OpenCV/Python》連載(22)繪制直線與線段

    本書京東優(yōu)惠購書鏈接:https://item.jd.com/14098452.html 本書CSDN獨家連載專欄:https://blog.csdn.net/youcans/category_12418787.html 本章介紹OpenCV的繪圖功能和簡單的鼠標交互處理方法。與Excel或Matplotlib中的可視化數據圖不同,OpenCV中的繪圖功能主要用于在圖像的指定位置繪制幾何圖形。 本

    2024年02月02日
    瀏覽(121)
  • 《數字圖像處理-OpenCV/Python》連載(26)繪制橢圓和橢圓弧

    《數字圖像處理-OpenCV/Python》連載(26)繪制橢圓和橢圓弧

    本書京東優(yōu)惠購書鏈接:https://item.jd.com/14098452.html 本書CSDN獨家連載專欄:https://blog.csdn.net/youcans/category_12418787.html 本章介紹OpenCV的繪圖功能和簡單的鼠標交互處理方法。與Excel或Matplotlib中的可視化數據圖不同,OpenCV中的繪圖功能主要用于在圖像的指定位置繪制幾何圖形。 本

    2024年02月06日
    瀏覽(122)
  • 《數字圖像處理-OpenCV/Python》連載:空間濾波之高斯濾波器

    《數字圖像處理-OpenCV/Python》連載:空間濾波之高斯濾波器

    本書京東 優(yōu)惠購書鏈接 https://item.jd.com/14098452.html 本書CSDN 獨家連載專欄 https://blog.csdn.net/youcans/category_12418787.html 圖像濾波是指在盡可能保留圖像細節(jié)特征的條件下對目標圖像的噪聲進行抑制,是常用的圖像處理方法。 空間濾波也稱空間域濾波,濾波器規(guī)定了鄰域形狀與鄰域

    2024年02月02日
    瀏覽(99)
  • 【Python_Opencv圖像處理框架】信用卡數字識別項目

    【Python_Opencv圖像處理框架】信用卡數字識別項目

    本篇文章是opencv學習的第六篇文章,前面主要講解了對圖像的一些基本操作,這篇文章我們就開始大展身手,將前面所學的基礎操作活學活用。既能復習基礎操作,又能學到一些新的知識。作為初學者,我盡己所能,但仍會存在疏漏的地方,希望各位看官不吝指正?? 我們通

    2024年02月03日
    瀏覽(90)
  • 數字圖像處理二維碼識別python+opencv實現(xiàn)二維碼實時識別

    數字圖像處理二維碼識別python+opencv實現(xiàn)二維碼實時識別

    數字圖像處理二維碼識別 python+opencv實現(xiàn)二維碼實時識別 特點: (1)可以實現(xiàn)普通二維碼,條形碼; (2)解決了opencv輸出中文亂碼的問題 (3)增加網頁自動跳轉功能 (4)實現(xiàn)二維碼實時檢測和識別 代碼保證原創(chuàng)、無錯誤、能正常運行(如果電腦環(huán)境配置沒問題) 送二維

    2024年01月16日
    瀏覽(102)
  • 數字圖像處理(實踐篇)二十七 Python-OpenCV 滑動條的使用

    數字圖像處理(實踐篇)二十七 Python-OpenCV 滑動條的使用

    目錄 1 涉及的函數 2 實踐 1 涉及的函數 ⒈?setWindowProperty()用于設置GUI應用程序的屬性 參數 : ①?

    2024年01月25日
    瀏覽(97)
  • OpenCV-Python學習(10)—— OpenCV 圖像二值化處理(cv.threshold)

    OpenCV-Python學習(10)—— OpenCV 圖像二值化處理(cv.threshold)

    1. 學習目標 理解圖像的分類,不同類型的圖像的區(qū)別; 對圖像進行二值化處理,對【 cv.threshold 】函數的理解。 2. 圖像分類 2.1 不同類型圖像說明 按照顏色對圖像進行分類,可以分為二值圖像、灰度圖像和彩色圖像。 二值圖像: 只有黑色和白色兩種顏色的圖像。 每個像素

    2024年02月03日
    瀏覽(103)
  • 【計算機視覺—python 】 圖像處理入門教程 —— 圖像屬性、像素編輯、創(chuàng)建與復制、裁剪與拼接【 openCV 學習筆記 005 to 010 and 255】

    【計算機視覺—python 】 圖像處理入門教程 —— 圖像屬性、像素編輯、創(chuàng)建與復制、裁剪與拼接【 openCV 學習筆記 005 to 010 and 255】

    OpenCV中讀取圖像文件后的數據結構符合Numpy的ndarray多維數組結構,因此 ndarray 數組的屬性和操作方法可用于圖像處理的一些操作。數據結構如下圖所示: img.ndim:查看代表圖像的維度。彩色圖像的維數為3,灰度圖像的維度為2。 img.shape:查看圖像的形狀,代表矩陣的行數(高

    2024年01月19日
    瀏覽(104)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包