中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

最基本的網(wǎng)絡(luò)營(yíng)銷站點(diǎn)西安優(yōu)化網(wǎng)站公司

最基本的網(wǎng)絡(luò)營(yíng)銷站點(diǎn),西安優(yōu)化網(wǎng)站公司,找在家做的兼職上什么網(wǎng)站好,商業(yè)空間設(shè)計(jì)平臺(tái)既然我們是面向Python的OpenCV(OpenCV for Python)那我們就必須要熟悉Numpy這個(gè)庫(kù),尤其是其中的數(shù)組的庫(kù),Python是沒(méi)有數(shù)組的,唯有借助他庫(kù)才有所實(shí)現(xiàn)想要的目的。 # 老三樣庫(kù)--事先導(dǎo)入 import numpy as np import c…

既然我們是面向Python的OpenCV(OpenCV for Python)那我們就必須要熟悉Numpy這個(gè)庫(kù),尤其是其中的數(shù)組的庫(kù),Python是沒(méi)有數(shù)組的,唯有借助他庫(kù)才有所實(shí)現(xiàn)想要的目的。

# 老三樣庫(kù)--事先導(dǎo)入
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

OpenCV處理圖像

  • 二、圖像的認(rèn)識(shí)
    • 2.1圖像的表示
      • 2.1.1 單通道__二值圖像
      • 2.1.2 單通道__灰度圖像
        • 隨機(jī)抓取一點(diǎn)看:
      • 2.1.3 多通道__RGB彩色圖像
        • 以#FFF為例子
        • 區(qū)別于OpenCV的通道
    • 2.2 逐點(diǎn)處理(逐像素)并操作
      • 2.2.1 灰度圖像
        • (1)如何證明plt和cv2的的灰度圖是一樣的
        • (2)避免錯(cuò)誤:`TypeError: unsupported operand type(s) for -: 'AxesImage' and 'int'`
          • 軸圖像轉(zhuǎn)換為數(shù)組形式plt.imread或plt.imsave
        • (3)plt就顯示是正常的顏色。參數(shù) cmap
          • `cmap` 是 Matplotlib 中的參數(shù),用于指定顏色映射(Colormap),它決定了如何將數(shù)據(jù)值映射到顏色。Colormap 是一種顏色表,可以將數(shù)值數(shù)據(jù)映射到對(duì)應(yīng)的顏色。它在繪制單通道圖像或圖表時(shí)非常有用,以幫助可視化數(shù)據(jù)。
        • (4)避免少cmap的參數(shù)出現(xiàn)的問(wèn)題
        • (5)修改像素點(diǎn)
      • 2.2.2 彩色圖像
        • 修改像素點(diǎn)
      • ==2.2.3 感興趣區(qū)域(ROI)【待處理】==
    • 2.3 圖像的屬性
    • 2.4 通道的操作
      • 2.4.1 cv2.split()能夠拆分圖像的通道
        • 拆分后就是單通道,需要灰度圖
      • 2.4.2 cv2.merge()可以實(shí)現(xiàn)圖像通道的合并
    • 2.5 色彩轉(zhuǎn)變
      • 2.5.1 色彩空間轉(zhuǎn)換
      • 要以灰度圖顯示
        • 轉(zhuǎn)換為HSV

二、圖像的認(rèn)識(shí)

2.1圖像的表示

2.1.1 單通道__二值圖像

二值圖像是指僅僅包含黑色和白色兩種顏色的圖像。

白色像素點(diǎn)(白色小方塊區(qū)域)處理為“1”,將黑色像素點(diǎn)(黑色小方塊區(qū)域)處理為“0”,以方便進(jìn)行后續(xù)的存儲(chǔ)和處理等操作

例如:二維碼和條形碼就是簡(jiǎn)單的二值
在這里插入圖片描述

2.1.2 單通道__灰度圖像

二值圖像表示起來(lái)簡(jiǎn)單方便,但是因?yàn)槠鋬H有黑白兩種顏色,所表示的圖像不夠細(xì)膩。如果想要表現(xiàn)更多的細(xì)節(jié),就需要使用更多的顏色。能夠表示的信息更多了

 256 個(gè)灰度級(jí),用數(shù)值區(qū)間[0, 255]來(lái)表示,中,數(shù)值“255”表示純白色,數(shù)值“0”表示純黑色.
# 處理圖像
import numpy as np
import cv2 as cv
import matplotlib.pyplot as pltimg =np.zeros((256,256,3),np.uint8)
plt.imshow(img[:,:,::-1])

在這里插入圖片描述

隨機(jī)抓取一點(diǎn)看:
x=np.random.randint(0,256)
y=np.random.randint(0,256)
img[x,y],x,y

> [0 0 0] 103 220
再次隨機(jī)

在這里插入圖片描述

2.1.3 多通道__RGB彩色圖像

自然界:紅色、綠色和藍(lán)色,即三基色(按照一定的比例混合構(gòu)成。)
要區(qū)別于美術(shù)中的三原色:紅黃藍(lán)

色彩空間:
從光學(xué)角度出發(fā)可以將顏色解析為主波長(zhǎng),純度,明度等,
從心理學(xué)角度和視覺(jué)角度出發(fā)可以將顏色解析為色調(diào),飽和度,亮度等,我們將這些采用不同方式表達(dá)顏色的模式稱為色彩空間。

RGB三個(gè)通道,每個(gè)通道取值[0,255]之間,組合表示顏色。共可以調(diào)配出所有常見(jiàn)的 256×256×256=16,777,216種顏色。

RGB=(R*65536)+(G*256)+B
在這里插入圖片描述

以#FFF為例子

#FFF是#FFFFFF的簡(jiǎn)稱
在這里插入圖片描述
其他顏色
在這里插入圖片描述

區(qū)別于OpenCV的通道

在RGB的色彩空間之中是以R,G,B的順序存儲(chǔ)的,然而在OpenCV中的通道是B,G,R
即:在處理圖像的時(shí)候,需要對(duì)指定的圖像通道順序進(jìn)行轉(zhuǎn)換。除此以外,還可以根據(jù)需要對(duì)不同色彩空間的圖像進(jìn)行類型轉(zhuǎn)換(灰度圖像處理為二值圖像,將彩色圖像處理灰度圖)

比方說(shuō),掃描二維碼的時(shí)候,我們需要01的黑白畫(huà)面就可以,不需要[0,255]的復(fù)雜

2.2 逐點(diǎn)處理(逐像素)并操作

像素的一格一格的小點(diǎn)來(lái)描述圖像,現(xiàn)在有numpy和matplotlib.pyplot就相當(dāng)于在二位的直角坐標(biāo)系中的第二象限,就能夠通過(guò)索引的形式對(duì)我們?cè)O(shè)定的圖像或者導(dǎo)入的圖像進(jìn)行操作,訪問(wèn)。
在這里插入圖片描述

在這里插入圖片描述

img[1,1]=(0,0,255)
plt.imshow(img[:,:,::-1])

在這里插入圖片描述

2.2.1 灰度圖像

在這里插入圖片描述

首先使用 Numpy 庫(kù)來(lái)生成一個(gè) n×m 大小的數(shù)組,用來(lái)模擬一個(gè)黑色圖像.

使用 Numpy 庫(kù)中的函數(shù) zeros()可以生成一個(gè)元素值都是 0 的數(shù)組
img=np.zeros((n,m),dtype=np.uint8

二維數(shù)組與圖像之間存在對(duì)應(yīng)關(guān)系。
在這里插入圖片描述

(1)如何證明plt和cv2的的灰度圖是一樣的

在這里插入圖片描述

import cv2
import numpy as np
import matplotlib.pyplot as plt# 讀取圖像
img = cv2.imread("./Pic/f2e919585490afd1bebd313257e7ad9.jpg", 0)# # 使用cv2.imwrite將OpenCV數(shù)組圖像保存為圖像文件
# cv2.imwrite('./Pic/f2e919585490afd1bebd313257e7ad9.jpg', img)# 如果你想要讀取并顯示保存后的圖像,可以執(zhí)行以下代碼
saved_img = cv2.imread('./Pic/f2e919585490afd1bebd313257e7ad9.jpg', 0)
plt.imshow(saved_img, cmap='gray')
plt.title('Saved Image')
print(img==saved_img)
(2)避免錯(cuò)誤:TypeError: unsupported operand type(s) for -: 'AxesImage' and 'int'

即:不可直接比較,需要將周圖像的信息轉(zhuǎn)換為數(shù)組的形式,一一對(duì)比。[軸圖像無(wú)法和numpy數(shù)組]
在這里插入圖片描述

軸圖像轉(zhuǎn)換為數(shù)組形式plt.imread或plt.imsave
import matplotlib.pyplot as plt# 讀取Matplotlib圖像并將其轉(zhuǎn)換為數(shù)組
image_plt = plt.imread('your_image_path.jpg')# 現(xiàn)在,image_plt是一個(gè)包含圖像像素?cái)?shù)據(jù)的NumPy數(shù)組
# 你可以對(duì)它進(jìn)行處理或進(jìn)行其他操作

或者,如果你要保存Matplotlib圖像到文件中,你可以使用plt.imsave函數(shù):

import matplotlib.pyplot as plt# 創(chuàng)建一個(gè)示例圖像(這是一個(gè)例子,你可以替換它為你自己的圖像數(shù)據(jù))
image_data = ...  # 這里應(yīng)該是一個(gè)NumPy數(shù)組# 使用plt.imsave保存NumPy數(shù)組為圖像文件
plt.imsave('output_image.jpg', image_data)

通過(guò)這兩種方法,你可以在Matplotlib圖像和NumPy數(shù)組之間進(jìn)行相互轉(zhuǎn)換。注意,如果你使用了一些Matplotlib特定的繪圖函數(shù)來(lái)創(chuàng)建圖像,你可以使用plt.gcf()獲取當(dāng)前的圖形對(duì)象,然后使用savefig方法將其保存為圖像文件。

(3)plt就顯示是正常的顏色。參數(shù) cmap

在使用 Matplotlib 繪制圖像時(shí),可以使用不同的 colormap(顏色映射)來(lái)表示單通道圖像,例如使用 cmap=‘gray’ 來(lái)顯示灰度圖像。對(duì)于四通道的圖像,Matplotlib 也可以正確地顯示透明度(Alpha)通道。

這是由于plt的映射到在灰度圖像中,你只有一個(gè)通道,表示亮度值,但你可以使用不同的 Colormap 來(lái)表示這些亮度值。

cool 包含青綠色和品紅色的陰影色。從青綠色平滑變化到品紅色。
gray 返回線性灰度色圖。
bone 具有較高的藍(lán)色成分的灰度色圖。該色圖用于對(duì)灰度圖添加電子的視圖。

opencv是BGR通道,plt默認(rèn)RGB通道,若使用cv2.imread()讀入圖像,用plt.imshow()展示原始圖像或者展示對(duì)讀入圖像進(jìn)行一系列操作后的圖像時(shí),需要進(jìn)行通道轉(zhuǎn)換。

顯示灰度圖像:

import matplotlib.pyplot as plt
import cv2# 讀取灰度圖像
gray_image = cv2.imread('gray_image.png', cv2.IMREAD_GRAYSCALE)# 顯示灰度圖像
plt.imshow(gray_image, cmap='gray')
plt.show()

顯示四通道圖像(RGBA):

import matplotlib.pyplot as plt
import cv2# 讀取四通道圖像
rgba_image = cv2.imread('rgba_image.png', cv2.IMREAD_UNCHANGED)# 顯示四通道圖像,包括透明度通道
plt.imshow(rgba_image)
plt.show()
cmap 是 Matplotlib 中的參數(shù),用于指定顏色映射(Colormap),它決定了如何將數(shù)據(jù)值映射到顏色。Colormap 是一種顏色表,可以將數(shù)值數(shù)據(jù)映射到對(duì)應(yīng)的顏色。它在繪制單通道圖像或圖表時(shí)非常有用,以幫助可視化數(shù)據(jù)。

Colormap 并不是通道的意思,而是指定如何將單一通道的數(shù)值映射到顏色的規(guī)則。在灰度圖像中,你只有一個(gè)通道,表示亮度值,但你可以使用不同的 Colormap 來(lái)表示這些亮度值。

Matplotlib 提供了多種內(nèi)置的 Colormap,一些常見(jiàn)的包括:

  1. 'viridis':從紫色到黃綠色的顏色映射,用于表示數(shù)據(jù)值的連續(xù)變化。
  2. 'jet':經(jīng)典的彩虹顏色映射。
  3. 'gray':灰度顏色映射,用于表示單通道圖像,將較暗的值映射為黑色,較亮的值映射為白色。
  4. 'copper':銅色顏色映射,常用于表示表面溫度。

你可以在 Matplotlib 中使用 cmap 參數(shù)來(lái)指定所使用的顏色映射。例如:

import matplotlib.pyplot as plt
import numpy as np# 創(chuàng)建一個(gè)示例的單通道數(shù)據(jù)
data = np.random.random((10, 10))# 使用'viridis' Colormap來(lái)繪制數(shù)據(jù)
plt.imshow(data, cmap='viridis')
plt.colorbar()  # 顯示顏色條
plt.show()

這將使用 ‘viridis’ Colormap 來(lái)表示數(shù)據(jù)中不同值的顏色。你可以根據(jù)你的需求選擇合適的 Colormap 來(lái)更好地可視化你的數(shù)據(jù)。不同的 Colormap 可以傳達(dá)不同的信息和情感。

(4)避免少cmap的參數(shù)出現(xiàn)的問(wèn)題
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=np.ones((200,800,3),dtype=np.uint8)
img[:] = 255cv2.imshow("this",img)
plt.imshow(img, cmap='gray')
cv2.waitKey(0)cv2.destroyAllWindows()
img

在這里插入圖片描述

(5)修改像素點(diǎn)

函數(shù) item()能夠更加高效地訪問(wèn)圖像的像素點(diǎn),該函數(shù)的語(yǔ)法格式為:
item(行,列)
函數(shù) itemset()可以用來(lái)修改像素值,其語(yǔ)法格式為:
itemset(索引值,新值

import numpy as np
img=np.random.randint(10,99,size=[5,5],dtype=np.uint8)
print("img=\n",img)
print("讀取像素點(diǎn) img.item(3,2)=",img.item(3,2))
img.itemset((3,2),255)
print("修改后 img=\n",img)
print("修改后像素點(diǎn) img.item(3,2)=",img.item(3,2))

隨機(jī)生成一張灰度圖

img=np.random.randint(0,256,size=[256,256],dtype=np.uint8)
cv2.imshow("demo",img)cv2.waitKey() cv2.destroyAllWindows()

在這里插入圖片描述**加粗樣式
**

2.2.2 彩色圖像

RGB 模式的彩色圖像在讀入 OpenCV 內(nèi)進(jìn)行處理時(shí),會(huì)反向的讀取圖像像素BGR,并存儲(chǔ)在ndarray中。其中的BGR為三維數(shù)組

在這里插入圖片描述

import numpy as np
import cv2
#-----------藍(lán)色通道值--------------
blue=np.zeros((300,300,3),dtype=np.uint8)
blue[:,:,0]=255
print("blue=\n",blue)
cv2.imshow("blue",blue)
#-----------綠色通道值--------------
green=np.zeros((300,300,3),dtype=np.uint8)
green[:,:,1]=255
print("green=\n",green)
cv2.imshow("green",green)
#-----------紅色通道值--------------
red=np.zeros((300,300,3),dtype=np.uint8)
red[:,:,2]=255
print("red=\n",red)
cv2.imshow("red",red)
#-----------釋放窗口--------------
cv2.waitKey()
cv2.destroyAllWindows()
修改像素點(diǎn)

函數(shù) item()訪問(wèn) RGB 模式圖像的像素值時(shí),其語(yǔ)法格式為:
item(行,列,通道)
函數(shù) itemset()修改(設(shè)置)RGB 模式圖像的像素值時(shí),其語(yǔ)法格式為:
itemset(三元組索引值,新值)
需要注意,針對(duì) RGB 圖像的訪問(wèn),必須同時(shí)指定行、列以及行列索引(通道),例如
img.item(a,b,c)。僅僅指定行和列是不可以的

import numpy as np
img=np.random.randint(10,99,size=[2,4,3],dtype=np.uint8)
print("img=\n",img)
print("讀取像素點(diǎn) img[1,2,0]=",img.item(1,2,0))
print("讀取像素點(diǎn) img[0,2,1]=",img.item(0,2,1))
print("讀取像素點(diǎn) img[1,0,2]=",img.item(1,0,2))
img.itemset((1,2,0),255)
img.itemset((0,2,1),255)
img.itemset((1,0,2),255)
print("修改后 img=\n",img)2 章 圖像處理基礎(chǔ)
27
print("修改后像素點(diǎn) img[1,2,0]=",img.item(1,2,0))
print("修改后像素點(diǎn) img[0,2,1]=",img.item(0,2,1))
print("修改后像素點(diǎn) img[1,0,2]=",img.item(1,0,2))

生成一幅彩色圖像,讓其中的像素值均為隨機(jī)數(shù)。 根據(jù)題目要求,編寫(xiě)代碼如下: import cv2

import numpy as np
> img=np.random.randint(0,256,size=[256,256,3],dtype=np.uint8)
> cv2.imshow("demo",img)
> cv2.waitKey()
> cv2.destroyAllWindows()

2.2.3 感興趣區(qū)域(ROI)【待處理】

ROI(region of interest),感興趣區(qū)域。機(jī)器視覺(jué)、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。在Halcon、OpenCV、Matlab等機(jī)器視覺(jué)軟件上常用到各種算子(Operator)和函數(shù)來(lái)求得感興趣區(qū)域ROI,并進(jìn)行圖像的下一步處理。

2.3 圖像的屬性

圖像的屬性
、
屬性— API
形狀 img.shape
圖像大小 img.size
數(shù)據(jù)類型 img.dtype

? shape:如果是彩色圖像,則返回包含行數(shù)、列數(shù)、通道數(shù)的數(shù)組;如果是二值圖像或者灰度圖像,則僅返回行數(shù)和列數(shù)。通過(guò)該屬性的返回值是否包含通道數(shù),可以判斷一幅圖像是灰度圖像(或二值圖像)還是彩色圖像。

? size:返回圖像的像素?cái)?shù)目。其值為“行×列×通道數(shù)”,灰度圖像或者二值圖像的通道數(shù)為 1。

? dtype:返回圖像的數(shù)據(jù)類型

2.4 通道的操作

針對(duì) OpenCV 內(nèi)的 BGR
圖像 img,如下語(yǔ)句分別從中提取了 B 通道、G 通道、R 通道。

b = img[ : , : , 0 ]
g = img[ : , : , 1 ]
r = img[ : , : , 2 ]

2.4.1 cv2.split()能夠拆分圖像的通道

b,g,r=cv2.split(img)
#通道拆分
b,g,r=cv.split(newimg)
拆分后就是單通道,需要灰度圖

plt.imshow(b,cmap=plt.cm.gray)
在這里插入圖片描述
在這里插入圖片描述

2.4.2 cv2.merge()可以實(shí)現(xiàn)圖像通道的合并

newimg=cv2.merge([b,g,r])

1

2.5 色彩轉(zhuǎn)變

2.5.1 色彩空間轉(zhuǎn)換

gray=cv.cvtColor(newimg,cv.COLOR_BGR2GRAY)
# plt.imshow(gray)

要以灰度圖顯示

plt.imshow(gray,cmap=plt.cm.gray)

在這里插入圖片描述

轉(zhuǎn)換為HSV
hsv=cv.cvtColor(newimg,cv.COLOR_BGR2HSV)
plt.imshow(hsv)

在這里插入圖片描述

http://www.risenshineclean.com/news/9614.html

相關(guān)文章:

  • wordpress做的好的網(wǎng)站如何優(yōu)化網(wǎng)站快速排名
  • 萊山做網(wǎng)站的公司熊貓關(guān)鍵詞工具官網(wǎng)
  • 域名注冊(cè)后怎么建網(wǎng)站全網(wǎng)營(yíng)銷推廣案例
  • 商城網(wǎng)站都有什么功能模塊免費(fèi)網(wǎng)站推廣工具
  • 網(wǎng)站建設(shè)規(guī)劃書(shū)的空間seo軟文代寫(xiě)
  • 做網(wǎng)站學(xué)習(xí)營(yíng)銷策略范文
  • 長(zhǎng)沙企業(yè)網(wǎng)站建設(shè)服務(wù)怎么做網(wǎng)址
  • 淮北市住房和城鄉(xiāng)建設(shè)局網(wǎng)站出售外鏈
  • 門(mén)戶網(wǎng)站類型北京疫情消息1小時(shí)前
  • 手機(jī)網(wǎng)站制作費(fèi)用多少seo廠商
  • 黃驊市海邊深圳優(yōu)化排名公司
  • 網(wǎng)站制作服務(wù)公司婚戀網(wǎng)站排名前三
  • 怎樣做營(yíng)銷型網(wǎng)站推廣ppt抖音seo軟件
  • 網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站開(kāi)發(fā)有什么區(qū)別百度競(jìng)價(jià)是什么工作
  • 如何給一個(gè)網(wǎng)站做定時(shí)的更新深圳網(wǎng)站制作推廣
  • 國(guó)內(nèi)永久在線免費(fèi)建站百度網(wǎng)盤(pán)資源搜索引擎入口
  • 深圳和海楓建設(shè)集團(tuán)有限公司網(wǎng)站百度推廣關(guān)鍵詞
  • node做網(wǎng)站優(yōu)勢(shì)東莞發(fā)布最新通告
  • 生產(chǎn)做網(wǎng)站表帶的制造廠家seo整站優(yōu)化系統(tǒng)
  • 專業(yè)網(wǎng)站建設(shè)模板怎么在百度推廣自己的網(wǎng)站
  • 購(gòu)物網(wǎng)站的圖片輪播怎么做短鏈接在線生成官網(wǎng)
  • 找別人做公司網(wǎng)站第一步做什么最新網(wǎng)站推廣方法
  • 做網(wǎng)站哪些公司好百度分析
  • 常德網(wǎng)站建設(shè)案例教程360優(yōu)化大師app
  • 自己做網(wǎng)站 為什么出現(xiàn)403營(yíng)銷渠道名詞解釋
  • 使用他人注冊(cè)商標(biāo)做網(wǎng)站湖南網(wǎng)站托管
  • 醫(yī)療器械做網(wǎng)站到哪里先備案網(wǎng)絡(luò)營(yíng)銷方法
  • 黔東網(wǎng)站建設(shè)什么網(wǎng)站都能打開(kāi)的瀏覽器
  • 聊天網(wǎng)站制作教程武漢seo廣告推廣
  • 淮北網(wǎng)站建設(shè)制作衡陽(yáng)網(wǎng)站優(yōu)化公司