[Python圖像處理] 二.OpenCV和Numpy讀取修改像素、幾何圖形繪製

2021-03-02 娜璋AI安全之家

該系列文章是講解Python OpenCV圖像處理知識,前期主要講解圖像入門、OpenCV基礎用法,中期講解圖像處理的各種算法,包括圖像銳化算子、圖像增強技術、圖像分割等,後期結合深度學習研究圖像識別、圖像分類應用。希望文章對您有所幫助,如果有不足之處,還請海涵~

該系列在github所有原始碼:

前一篇文章介紹了Python圖像處理基礎知識,這篇文章將講解 OpenCV+Numpy 圖像處理基礎知識,包括讀取像素和修改像素。知識點如下:

一.傳統讀取像素方法

二.傳統修改像素方法

三.Numpy讀取像素方法

四.Numpy修改像素方法

五.幾何圖形繪製

學Python近八年,認識了很多大佬和朋友,感恩。由於在外求學且需要養娃,故在CSDN設置成了最低價收費專欄,覺得不錯的可以購買抬愛;但作者的本意是幫助更多初學者入門,因此在github開源了所有代碼,也在公眾號同步更新。深知自己很菜,得拼命努力前行,編程也沒有什麼捷徑,幹就對了。希望未來能更透徹學習和撰寫文章,同時非常感謝參考文獻中的大佬們的文章和分享,共勉。

- https://blog.csdn.net/eastmount

一.傳統讀取像素方法

1.灰度圖像,返回灰度值
返回值=圖像(位置參數),例:p = img[88,142] print(p)

# -*- coding:utf-8 -*-
import cv2

#讀取圖片
img = cv2.imread("picture.bmp", cv2.IMREAD_UNCHANGED)

#灰度圖像
p = img[88, 142]
print(p)

#顯示圖像
cv2.imshow("Demo", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

#寫入圖像
cv2.imwrite("testyxz.jpg", img)

輸出結果如下所示:[131 131 131],由於該圖是24位BMP,B=G=R輸出三個相同結果,有的圖像僅有一個像素點則輸出一個值。

2.BGR圖像,返回值為B、G、R的值
例:

b = img[78, 125, 0] print(b)

g = img[78, 125, 1] print(g)

r = img[78,125, 2] print(r)

# -*- coding:utf-8 -*-
import cv2

#讀取圖片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)

#BGR圖像
b = img[78, 125, 0]
print(b)
g = img[78, 125, 1]
print(g)
r = img[78, 125, 2]
print(r)

#方法二
bgr = img[78, 125]
print(bgr)

#顯示圖像
cv2.imshow("Demo", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

#寫入圖像
cv2.imwrite("testyxz.jpg", img)

輸出像素和圖像如下所示:

二.傳統修改像素方法

1.修改單個像素值
BGR圖像可以通過位置參數直接訪問像素值並進行修改,輸出結果如下所示:

# -*- coding:utf-8 -*-
import cv2

#讀取圖片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)

#BGR圖像
print(img[78, 125, 0])
print(img[78, 125, 1])
print(img[78, 125, 2])

#修改像素
img[78, 125, 0] = 255
img[78, 125, 1] = 255
img[78, 125, 2] =255
print(img[78, 125])
img[78, 125] = [10, 10, 10]
print(img[78, 125, 0])
print(img[78, 125, 1])
print(img[78, 125, 2])

#方法二
print(img[78, 125])
img[78, 125] = [10, 10, 10]
print(img[78, 125])

輸出結果如下所示,通過兩種方法分別將B、G、R像素值修改為255和0。

155

104

61

255

255

255

[255 255 255]

[10 10 10]

2.修改區域像素

通過訪問圖像數組的位置區域實現區域像素修改,比如 [100:150,400:500] 是訪問第100到150行,400到500列的區域,再對該區域像素進行修改。代碼如下所示:

# -*- coding:utf-8 -*-
import cv2

#讀取圖片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)

#BGR圖像
img[100:150, 400:500] = [255, 255, 0]

#顯示圖像
cv2.imshow("Demo", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

#寫入圖像
cv2.imwrite("testyxz.jpg", img)

輸出結果如下所示,[255, 255, 0]是淺藍色。

三.Numpy讀取像素方法

使用Numpy進行像素讀取,調用方式如下:

# -*- coding:utf-8 -*-
import cv2
import numpy

#讀取圖片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)

#Numpy讀取像素
blue = img.item(78, 100, 0)
green = img.item(78, 100, 1)
red = img.item(78, 100, 2)
print(blue)
print(green)
print(red)

#顯示圖像
cv2.imshow("Demo", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如下,注意OpenCV讀取圖像通道是BGR,也可以轉換成RGB在進行處理。

四.Numpy修改像素方法

使用Numpy的itemset函數修改像素,調用方式如下:

例如:img.itemset((88,99), 255)

# -*- coding:utf-8 -*-
import cv2
import numpy

#讀取圖片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)

#Numpy讀取像素
print(img.item(78, 100, 0))
print(img.item(78, 100, 1))
print(img.item(78, 100, 2))
img.itemset((78, 100, 0), 100)
img.itemset((78, 100, 1), 100)
img.itemset((78, 100, 2), 100)
print(img.item(78, 100, 0))
print(img.item(78, 100, 1))
print(img.item(78, 100, 2))

輸出結果如下:

也可以同時輸出B、G、R三個值,核心代碼如下:

print(img[78, 78])
img.itemset((78, 78, 0), 0)
img.itemset((78, 78, 1), 0)
img.itemset((78, 78, 2), 0)
print(img[78, 78])
#[155 104 61]
#[0 0 0]

五.幾何圖形繪製

本小節主要講解OpenCV中幾何圖形的繪製方法,包括:

cv2.line()

cv2.circle()

cv2.rectangle()

cv2.ellipse()

cv2.polylines()

cv2.putText()

1.繪製直線

在OpenCV中,繪製直線需要獲取直線的起點和終點坐標,調用cv2.line()函數實現該功能。該函數原型如下所示:

img = line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

– img表示需要繪製的那幅圖像

– pt1表示線段第一個點的坐標

– pt2表示線段第二個點的坐標

– color表示線條顏色,需要傳入一個RGB元組,如(255,0,0)代表藍色

– thickness表示線條粗細

– lineType表示線條的類型

– shift表示點坐標中的小數位數

下面的代碼是繪製一條直線,通過np.zeros()創建一幅黑色圖像,接著調用cv2.line()繪製直線,參數包括起始坐標和顏色、粗細。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪製直線
cv2.line(img, (0,0), (255,255), (55,255,155), 5)

#顯示圖像
cv2.imshow("line", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖所示,從坐標(0,0)到(255,255)繪製一條直線,其直線顏色為(55,255,155),粗細為5。

基本線條的繪製方法掌握之後,我們能進行簡單的變化,比如下面的代碼增加了一個簡單循環,將圖形繪製成了四部分。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪製直線
i = 0
while i<255:
cv2.line(img, (0,i), (255,255-i), (55,255,155), 5)
i = i + 1

#顯示圖像
cv2.imshow("line", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖所示。

2.繪製矩形

在OpenCV中,繪製矩形通過cv2.rectangle()函數實現,該函數原型如下所示:

img = rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

– img表示需要繪製的那幅圖像

– pt1表示矩形的左上角位置坐標

– pt2表示矩形的右下角位置坐標

– color表示矩形的顏色

– thickness表示邊框的粗細

– lineType表示線條的類型

– shift表示點坐標中的小數位數

下面的代碼是繪製一個矩形,通過np.zeros()創建一幅黑色圖像,接著調用cv2.rectangle()繪製矩形。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪製矩形
cv2.rectangle(img, (20,20), (150,250), (255,0,0), 2)

#顯示圖像
cv2.imshow("rectangle", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖,從左上角坐標為(20,20),右下角坐標為(150,250),繪製的矩形顏色為藍色(255,0,0),粗細為2。

3.繪製圓形

在OpenCV中,繪製矩形通過cv2.rectangle()函數實現,該函數原型如下所示:

img = circle(img, center, radius, color[, thickness[, lineType[, shift]]])

– img表示需要繪製圓的圖像

– center表示圓心坐標

– radius表示圓的半徑

– color表示圓的顏色

– thickness如果為正值,表示圓輪廓的厚度;負厚度表示要繪製一個填充圓

– lineType表示圓的邊界類型

– shift表示中心坐標和半徑值中的小數位數

下面的代碼是繪製一個圓形。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪製圓形
cv2.circle(img, (100,100), 50, (255,255,0), -1)

#顯示圖像
cv2.imshow("circle", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖所示,它在圓形為(100,100)的位置,繪製了一個半徑為50,顏色為(255,255,0)、粗細為4的圓。

注意,如果將粗細設置為「-1」,則繪製的圓為實心,如圖所示。

4.繪製橢圓

在OpenCV中,繪製橢圓比較複雜,要多輸入幾個參數,如中心點的位置坐標,長軸和短軸的長度,橢圓沿逆時針方向旋轉的角度等。cv2.ellipse()函數原型如下所示:

img = ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])

– img表示需要繪製橢圓的圖像

– center表示橢圓圓心坐標

– axes表示軸的長度(短半徑和長半徑)

– angle表示偏轉的角度(逆時針旋轉)

– startAngle表示圓弧起始角的角度(逆時針旋轉)

– endAngle表示圓弧終結角的角度(逆時針旋轉)

– color表示線條的顏色

– thickness如果為正值,表示橢圓輪廓的厚度;負值表示要繪製一個填充橢圓

– lineType表示圓的邊界類型

– shift表示中心坐標和軸值中的小數位數

下面是繪製一個橢圓的代碼。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪製橢圓
#橢圓中心(120,100) 長軸和短軸為(100,50)
#偏轉角度為20
#圓弧起始角的角度0 圓弧終結角的角度360
#顏色(255,0,255) 線條粗細2
cv2.ellipse(img, (120, 100), (100, 50), 20, 0, 360, (255, 0, 255), 2)

#顯示圖像
cv2.imshow("ellipse", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖所示,其橢圓中心為(120,100),長軸為100,短軸為50,偏轉角度為20,圓弧起始角的角度為0,圓弧終結角的角度為360,表示一個完整的橢圓。繪製的顏色為(255,0,255),粗細為2。

下面的代碼是繪製一個實心橢圓。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪製橢圓
cv2.ellipse(img, (120, 120), (120, 80), 40, 0, 360, (255, 0, 255), -1)

#顯示圖像
cv2.imshow("ellipse", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

繪製如圖所示的圖形。

5.繪製多邊形

在OpenCV中,調用cv2.polylines()函數繪製多邊形,它需要指定每個頂點的坐標,通過這些點構建多邊形,其函數原型如下所示:

img = polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])

– img表示需要繪製的圖像

– center表示多邊形曲線陣列

– isClosed表示繪製的多邊形是否閉合,False表示不閉合

– color表示線條的顏色

– thickness表示線條粗細

– lineType表示邊界類型

– shift表示頂點坐標中的小數位數

下面是繪製一個多邊形的代碼。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪製多邊形
pts = np.array([[10,80], [120,80], [120,200], [30,250]])
cv2.polylines(img, [pts], True, (255, 255, 255), 5)

#顯示圖像
cv2.imshow("ellipse", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖所示,繪製的多邊形為白色的閉合圖形。

下面的代碼是繪製一個五角星多邊形。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((512,512,3), np.uint8)

#繪製多邊形
pts = np.array([[50, 190], [380, 420], [255, 50], [120, 420], [450, 190]])
cv2.polylines(img, [pts], True, (0, 255, 255), 10)

#顯示圖像
cv2.imshow("ellipse", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖所示,它將五個頂點左邊分別連接起來,構成了一個黃色的五角星。

6.繪製文字

在OpenCV中,調用cv2.putText()函數添加對應的文字,其函數原型如下所示:

img = putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

– img表示要繪製的圖像

– text表示要繪製的文字

– org表示要繪製的位置,圖像中文本字符串的左下角

– fontFace表示字體類型,具體查看see cv::HersheyFonts

– fontScale表示字體的大小,計算為比例因子乘以字體特定的基本大小

– color表示字體的顏色

– thickness表示字體的粗細

– lineType表示邊界類型

– bottomLeftOrigin如果為真,則圖像數據原點位於左下角,否則它在左上角

下面是繪製文字的代碼。

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#創建黑色圖像
img = np.zeros((256,256,3), np.uint8)

#繪製文字
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, 'I love Python!!!',
(10, 100), font, 0.6, (255, 255, 0), 2)

#顯示圖像
cv2.imshow("polylines", img)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖所示,繪製的文字為「I love Python!!!」。

四.總結

寫到這裡,這篇毒基礎性文章就介紹結束了。希望文章對大家有所幫助,如果有錯誤或不足之處,還請海涵。本文首發於CSDN專欄,為了幫助更多同學故在公眾號同步更新,一起加油!

一.傳統讀取像素方法

二.傳統修改像素方法

三.Numpy讀取像素方法

四.Numpy修改像素方法

五.幾何圖形繪製

學Python近八年,認識了很多大佬和朋友,希望大家一起進步,作者也會繼續深入學習並分享Python相關知識。由於在外求學且需要養娃,故在CSDN設置成了最低價收費專欄,覺得不錯的可以購買;但作者的本意是幫助更多初學者入門,因此在github開源了所有代碼,也在公眾號同步更新。深知自己很菜,得拼命努力前行,編程也沒有什麼捷徑,幹就對了。希望未來能更透徹撰寫相關文章,同時非常感謝參考文獻中的大佬們的文章和分享,砥礪前行。

前文回顧(下面的超連結可以點擊喔):

2020年新開的「娜璋AI安全之家」,主要圍繞Python大數據分析、網絡空間安全、人工智慧、Web滲透及攻防技術進行講解,同時分享CCF、SCI、南核北核論文的算法實現。娜璋之家會更加系統,並重構作者的所有文章,從零講解Python和安全,寫了近十年文章,真心想把自己所學所感所做分享出來,還請各位多多指教,真誠邀請您的關注!謝謝。2021年繼續加油!

(By:Eastmount 2021-02-08 夜於貴陽)

參考文獻:

[1] 羅子江. Python中的圖像處理[M]. 科學出版社,2020.

[2] https://blog.csdn.net/eastmount/category_9278090.html

[3] 岡薩雷斯. 數字圖像處理(第3版)[M]. 電子工業出版社,2013.

[4] 阮秋琦. 數字圖像處理學(第3版)[M]. 電子工業出版社,2008.

[5]毛星雲,冷雪飛. OpenCV3編程入門[M]. 電子工業出版社,2015.

[6]張錚. 數字圖像處理與機器視覺——Visual C++與Matlab實現.

[6]網易雲課堂_高登教育. Python+OpenCV圖像處理

相關焦點

  • Python下opencv使用筆記(一:簡單操作與幾何變換)
    ,包括常見的圖像處理方法,濾波算法,等等,了解常見的操作,方便後續的進一步處理,這裡搬運過來,方便視覺領域的初學者可以參考。圖像簡單讀取、顯示與儲存首先關於python想說的是,單純的官網下載的python並不大,是一個最初的python,進行一些簡單的操作時可以的,但是當你進行複雜一點的時候,就需要許多第三方的安裝包,比如numpy等等,這些庫安裝進去說起來也不是很複雜,網上有很多教程,但是當許多的包安裝的時候,有的庫包並沒有你的電腦的版本,等等還有許多因素導致你的庫包安裝不進去,想想還是挺麻煩的
  • Python+OpenCV的基礎圖像處理操作匯總
    圖像處理是對圖像進行的技術操作與分析,比如為了得到增強的圖像或提取一些有用的信息而進行的一系列操作。隨著我們的發展,許多應用程式使用圖像/幀/視頻作為輸入,對它們進行預處理,並將其輸入到設備或軟體或腳本中。圖像處理也可以是娛樂性的,可以用於許多應用。
  • Python OpenCV繪製幾何圖形
    來自:https://www.linuxmi.com/在這篇Python OpenCV文章中,我想向您展示在OpenCV中繪製基本的幾何圖形
  • Python 圖像處理 OpenCV (1):入門
    opencv-python 是只包含了主要模塊的包,而 opencv-contrib-python 包含了主要模塊以及一些擴展模塊,帶一些收費或者專利的算法,還有一些比較新的算法的高級版本。安裝的時候選擇自己喜歡的版本裝就好了,命令如下:# opencv-python 安裝命令pip install opencv-python# opencv-contrib-pythonpip install opencv-contrib-python安裝完成後可以通過以下代碼查看安裝的版本信息:
  • ImagePy——UI界面支持開放插件的Python開源圖像處理框架
    ImagePy 是一款基於 imagej 等插件的圖像處理框架,它可以與 scipy.ndimage、scikit-image、opencv、simpleitk、mayavi 以及任何基於 numpy 的庫進行組合使用,其地址為 http://imagepy.org。簡介ImagePy 是用 python 編寫的開源圖像處理框架。
  • opencv-python獲取圖像:面向對象與面向過程
    讀取圖片學過數字圖像處理的小夥伴應該很熟悉,在數字圖像處理課上,這是一張標準的測試圖片。關於圖片的來源:1973年6月,美國南加州大學的信號圖像處理研究所的一個助理教授和他的一個研究生打算為了一個學術會議找一張數字照片,而他們對於手頭現有成堆"無聊"照片感到厭煩。事實上他們需要的是一個人臉照片,同時又能讓人眼前一亮。這時正好有人走進實驗室,手上帶著一本當時的花花公子雜誌,結果故事發生了……而限於當時實驗室設備和測試圖片的需要,lenna的圖片只摳到了原圖的肩膀部分。
  • 基於opencv 的圖像處理入門教程
    前言雖然計算機視覺領域目前基本是以深度學習算法為主,但實際上很多時候對圖片的很多處理方法,並不需要採用深度學習的網絡模型,採用目前成熟的圖像處理庫即可實現,比如 OpenCV 和 PIL ,對圖片進行簡單的調整大小、裁剪、旋轉,或者是對圖片的模糊操作。
  • 基於 opencv 的圖像處理入門教程
    雖然計算機視覺領域目前基本是以深度學習算法為主,但實際上很多時候對圖片的很多處理方法,並不需要採用深度學習的網絡模型,採用目前成熟的圖像處理庫即可實現,比如 OpenCV 和 PIL ,對圖片進行簡單的調整大小、裁剪、旋轉,或者是對圖片的模糊操作。
  • 「Python+cv2」Python安裝opencv及圖像的基本操作
    Python環境opencv的安裝1、檢查是否安裝python環境3、安裝opencvpython環境下opencv的安裝:pip3 install opencv-pythonopencv的基本操作1、導入opencv庫import cv22、讀取圖像並顯示
  • Python十大工具,讓圖像簡潔直觀有魅力!
    因此,圖像處理就是對數字圖像進行分析、操作的過程,其主要目的是為改善圖像質量或從中提取一些有用信息。圖像處理的常見任務包括圖像顯示、圖像基本操作(裁剪、翻轉、旋轉等)、圖像分割、分類及特徵提取、圖像修復和圖像識別。而Python作為一種科學程式語言已在日漸普及,在生態系統庫中還免費提供了許多最為先進的圖像處理工具,因此成為了圖像處理的最佳選擇。
  • Python中的十大圖像處理工具
    圖像處理是分析和操縱數字圖像的過程,旨在提高其質量或從中提取一些信息,然後將其用於某些方面。圖像處理中的常見任務包括顯示圖像,基本操作(如裁剪、翻轉、旋轉等),圖像分割,分類和特徵提取,圖像恢復和圖像識別等。 Python之成為圖像處理任務的最佳選擇,是因為這一科學程式語言日益普及,並且其自身免費提供許多最先進的圖像處理工具。
  • opencv-python圖像預處理-濾波
    為了消除外界環境對圖像採集的幹擾,增強圖像的邊緣及灰度跳變的部分,使圖像變得清晰以及提高圖像處理速度需要對圖像進行預處理操作,主要是對圖像進行濾波和增強操作。使用的方法可以分為空間域處理和頻率域處理兩類。空間域指圖像平面本身,這類圖像處理方法用各種模板直接與圖像進行卷積運算,實現對圖像的處理。
  • 使用Python+OpenCV進行圖像處理之入門教程
    圖像處理有很多種應用,包括用於解析文檔和生成相應文本的光學字符識別(OCR)、圖像增強與重建、物體識別、人體運動識別、手勢識別、人臉識別等。在學習的過程中,你會遇到過奇形怪狀的各種圖像濾波器,那有沒有去思考如何實現它嗎,在本文中,我們將通過實現一個簡單的濾波器來開始我們的圖像處理之旅!什麼是OpenCVOpenCV是一個開源庫,包含了許多計算機視覺算法。
  • OpenCV-Python 讀取顯示圖像|五
    目標在這裡,你將學習如何讀取圖像,如何顯示圖像以及如何將其保存回去你將學習以下功能:cv.imread(),cv.imshow(),cv.imwrite()(可選)你將學習如何使用Matplotlib顯示圖像使用OpenCV讀取圖像使用cv.imread()函數讀取圖像。圖像應該在工作目錄或圖像的完整路徑應給出。
  • 10個Python圖像處理工具,非常全了!
    介紹我們這個世界充滿了數據,而圖像是這些數據的重要組成部分。然而,要想使用這些圖像,需要對它們進行處理。因此,圖像處理是分析和處理數字圖像的必要的過程,其主要目的是提高圖像質量或從中提取一些信息,然後加以利用。圖像處理中常見的任務包括圖像顯示、裁剪、翻轉、旋轉等基本操作、圖像分割、分類和特徵提取、圖像恢復和圖像識別。
  • 「python opencv視覺零到實戰」八、圖片選區操作
    一、學習目標了解什麼是ROI了解floodFill的使用方法如有錯誤歡迎指出~目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰
  • 基於OpenCV的圖像分割處理!
    圖像閾值化分割是一種傳統的最常用的圖像分割方法,因其實現簡單、計算量小、性能較穩定而成為圖像分割中最基本和應用最廣泛的分割技術。它特別適用於目標和背景佔據不同灰度級範圍的圖像。它不僅可以極大的壓縮數據量,而且也大大簡化了分析和處理步驟,因此在很多情況下,是進行圖像分析、特徵提取與模式識別之前的必要的圖像預處理過程。閾值處理是指剔除圖像內像素值高於閾值或者低於閾值得像素點。例如,設定閾值為127,將圖像內所有像素值大於127的像素點的值設為255;將圖像內所有像素值小於127的像素點的值設為0。
  • 使用Python OpenCV處理圖像之詳解直線、圓、矩形及文字的繪製
    我們知道,OpenCV作為一款強大的圖像處理庫,它能對圖像進行一些類似PS上面的處理,如果你足夠精通它,你可能會發掘比PS處理圖像更加豐富的功能……但是,作為Python新手,你不可能跳過一些基礎內容的學習過程。
  • 10個不得不知的Python圖像處理工具,非常全了!
    介紹我們這個世界充滿了數據,而圖像是這些數據的重要組成部分。然而,要想使用這些圖像,需要對它們進行處理。因此,圖像處理是分析和處理數字圖像的必要的過程,其主要目的是提高圖像質量或從中提取一些信息,然後加以利用。圖像處理中常見的任務包括圖像顯示、裁剪、翻轉、旋轉等基本操作、圖像分割、分類和特徵提取、圖像恢復和圖像識別。
  • 常用的十大 python 圖像處理工具
    但無論是用於何種用途,這些圖像都需要進行處理。圖像處理就是分析和處理數字圖像的過程,主要旨在提高其質量或從中提取一些信息,然後可以將其用於某種用途。圖像處理中的常見任務包括顯示圖像,基本操作如裁剪、翻轉、旋轉等,圖像分割,分類和特徵提取,圖像恢復和圖像識別。