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

opencv-06 使用numpy.array 操作圖片像素值

這篇具有很好參考價(jià)值的文章主要介紹了opencv-06 使用numpy.array 操作圖片像素值。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

numpy.array 提供了 item()和 itemset()函數(shù)來(lái)訪問(wèn)和修改像素值,而且這兩個(gè)函數(shù)都是經(jīng)過(guò)
優(yōu)化處理的,能夠更大幅度地提高處理效率。在訪問(wèn)及修改像素點(diǎn)的值時(shí),利用 numpy.array
提供的函數(shù)比直接使用索引要快得多,同時(shí),這兩個(gè)函數(shù)的可讀性也更好。

1.二值圖像及灰度圖像

可以將二值圖像理解為特殊的灰度圖像,所以這里僅以灰度圖像為例討論像素點(diǎn)值的讀取
和修改。

函數(shù) item()能夠更加高效地訪問(wèn)圖像的像素點(diǎn),該函數(shù)的語(yǔ)法格式為:
item(行,列)
函數(shù) itemset()可以用來(lái)修改像素值,其語(yǔ)法格式為:
itemset(索引值,新值)
為了便于理解,我們首先使用 Numpy 庫(kù)生成一個(gè) 5×5 大小的隨機(jī)數(shù)組,用來(lái)模擬一幅灰度圖像,并對(duì)其進(jìn)行簡(jiǎn)單的處理。

import numpy as np


img=np.random.randint(10,99,size=[5,5],dtype=np.uint8)

print(img)

生成一個(gè)5行5列 10到99 隨機(jī)數(shù)的像素值的矩陣

打印結(jié)果:

[[67 39 26 43 23]
 [61 42 80 91 19]
 [39 80 58 72 62]
 [94 45 73 47 31]
 [97 39 19 92 59]]

利用item 讀取某一個(gè)像素值

示例 item(3.2)

代碼演示:

import numpy as np


img=np.random.randint(10,99,size=[5,5],dtype=np.uint8)

print(img)

print("讀取像素點(diǎn) img.item(3,2)=",img.item(3,2))

打印結(jié)果:

[[97 51 42 58 68]
[21 37 70 92 76]
[38 69 53 21 44]
[69 15 24 71 32]
[12 82 96 50 97]]

讀取第四行第三列的像素值 img.item(3,2)= 24

利用itemset 修改像素值

img.itemset((3,2),255)

import numpy as np


img=np.random.randint(10,99,size=[5,5],dtype=np.uint8)

print(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))

打印結(jié)果:

[[70 59 31 93 22]
 [16 10 66 68 50]
 [77 60 92 62 30]
 [61 45 93 98 79]
 [66 27 34 60 63]]
讀取像素點(diǎn) img.item(3,2)= 93
修改后 img=
 [[ 70  59  31  93  22]
 [ 16  10  66  68  50]
 [ 77  60  92  62  30]
 [ 61  45 255  98  79]
 [ 66  27  34  60  63]]
修改后像素點(diǎn) img.item(3,2)= 255

通過(guò)觀察輸出結(jié)果可以發(fā)現(xiàn),語(yǔ)句 img.itemset((3,2),255)將圖像第 4 行第 3 列位置上的像素值修改為 255 了

彩色圖像numpy.arry 像素值操作

我們也可以使用函數(shù) item()和函數(shù) itemset()來(lái)訪問(wèn)和修改彩色圖像的像素值,過(guò)程與操作
灰度圖像相似,不同之處在于需要補(bǔ)充通道信息。
函數(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)。僅僅指定行和列是不可以的。
實(shí)操:
使用 Numpy 生成一個(gè)由隨機(jī)數(shù)構(gòu)成的三維數(shù)組,用來(lái)模擬一幅 RGB 色彩空間
的彩色圖像,并使用函數(shù) item()和 itemset()來(lái)訪問(wèn)和修改它

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)
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))

這段代碼創(chuàng)建了一個(gè)形狀為(2, 4, 3)的NumPy數(shù)組img,其中包含了隨機(jī)生成的8位無(wú)符號(hào)整數(shù)(uint8)類(lèi)型的數(shù)據(jù)。這個(gè)數(shù)組模擬了一個(gè)彩色圖像,具有2個(gè)高度、4個(gè)寬度和3個(gè)通道(紅、綠、藍(lán))。
使用np.random.randint()函數(shù)生成隨機(jī)整數(shù),指定了整數(shù)范圍為10到99之間。size=[2, 4, 3]參數(shù)定義了數(shù)組的形狀為(2, 4, 3),即2個(gè)高度、4個(gè)寬度和3個(gè)通道

網(wǎng)上看到這個(gè)圖,對(duì) 上述中 size=[2,4,3] 有比較好的圖感效果,幫助理解三維數(shù)組中這幾個(gè)數(shù)字的含義
opencv-06 使用numpy.array 操作圖片像素值,opencv,opencv,numpy,人工智能

運(yùn)行結(jié)果:

img=
 [[[98 63 26]
  [49 64 50]
  [62 36 65]
  [75 77 61]]

 [[11 87 47]
  [69 93 27]
  [80 24 35]
  [81 97 73]]]
讀取像素點(diǎn) img[1,2,0]= 80
讀取像素點(diǎn) img[0,2,1]= 36
讀取像素點(diǎn) img[1,0,2]= 47
修改后 img=
 [[[ 98  63  26]
  [ 49  64  50]
  [ 62 255  65]
  [ 75  77  61]]

 [[ 11  87 255]
  [ 69  93  27]
  [255  24  35]
  [ 81  97  73]]]
修改后像素點(diǎn) img[1,2,0]= 255
修改后像素點(diǎn) img[0,2,1]= 255
修改后像素點(diǎn) img[1,0,2]= 255

這個(gè)輸出展示了一個(gè)形狀為(2, 4, 3)的NumPy數(shù)組,表示了兩個(gè)2x4的像素塊,每個(gè)像素塊包含3個(gè)通道(紅、綠、藍(lán))。每個(gè)像素值都是隨機(jī)生成的介于10到99之間的整數(shù)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-572517.html

到了這里,關(guān)于opencv-06 使用numpy.array 操作圖片像素值的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 2023-06-16 Android app 使用opencv 調(diào)用jni在圖片上添加文字,對(duì)圖片進(jìn)行模糊處理,源碼實(shí)例學(xué)習(xí)。

    2023-06-16 Android app 使用opencv 調(diào)用jni在圖片上添加文字,對(duì)圖片進(jìn)行模糊處理,源碼實(shí)例學(xué)習(xí)。

    一、要理解還是得自己看代碼 ? ? ? ?1.1 完整的測(cè)試代碼路徑如下 https://download.csdn.net/download/qq_37858386/87916944 ? ? ? ?1.2 代碼架構(gòu)? ? ? ? ?1.3 app 運(yùn)行效果 二、android studio 添加 opencv module可以參考下面的文章,比較詳細(xì)。 Android + OpenCV 入門(mén)教程筆記(保姆級(jí))_opencv android_派

    2024年02月09日
    瀏覽(24)
  • opencv基礎(chǔ)53-圖像輪廓06-判斷像素點(diǎn)與輪廓的關(guān)系(輪廓內(nèi),輪廓上,輪廓外)cv2.pointPolygonTest()

    opencv基礎(chǔ)53-圖像輪廓06-判斷像素點(diǎn)與輪廓的關(guān)系(輪廓內(nèi),輪廓上,輪廓外)cv2.pointPolygonTest()

    在 OpenCV 中,函數(shù) cv2.pointPolygonTest()被用來(lái)計(jì)算點(diǎn)到多邊形(輪廓)的最短距離(也 就是垂線(xiàn)距離),這個(gè)計(jì)算過(guò)程又稱(chēng)點(diǎn)和多邊形的關(guān)系測(cè)試。該函數(shù)的語(yǔ)法格式為: retval = cv2.pointPolygonTest( contour, pt, measureDist ) 式中的返回值為 retval,與參數(shù) measureDist 的值有關(guān)。 式中的參數(shù)

    2024年02月13日
    瀏覽(19)
  • Opencv | 基于像素的基礎(chǔ)操作 & 邏輯運(yùn)算

    感謝閱讀?? 如果喜歡這篇文章,記得點(diǎn)贊??和轉(zhuǎn)發(fā)??哦! 有任何想法或問(wèn)題,歡迎留言交流??,我們下次見(jiàn)! 本文相關(guān)代碼存放位置 ????【 Opencv基于像素值的計(jì)算 】 ????【 Opencv 基于像素值的邏輯運(yùn)算 】 祝愉快??!

    2024年04月12日
    瀏覽(20)
  • opencv 05 彩色RGB像素值操作

    opencv 05 彩色RGB像素值操作

    RGB 模式的彩色圖像在讀入 OpenCV 內(nèi)進(jìn)行處理時(shí),會(huì)按照行方向依次讀取該 RGB 圖像的 B 通道、G 通道、R 通道的像素點(diǎn),并將像素點(diǎn)以行為單位存儲(chǔ)在 ndarray 的列中。例如, 有一幅大小為 R 行×C 列的原始 RGB 圖像,其在 OpenCV 內(nèi)以 BGR 模式的三維數(shù)組形式存儲(chǔ), 如圖 2-7 所示 可

    2024年02月16日
    瀏覽(16)
  • python numpy opencv調(diào)整圖片亮度對(duì)比度飽和度

    (想要完整代碼直接劃到最后) 原理比較簡(jiǎn)單,本質(zhì)上是對(duì)圖像各個(gè)通道的每個(gè)像素點(diǎn)做線(xiàn)性變換,對(duì)超出范圍[0,255]的做截?cái)嗵幚?,所以使用numpy處理比較方便 一下函數(shù)為了

    2024年02月12日
    瀏覽(20)
  • Opencv C++ 三、通過(guò)鼠標(biāo)點(diǎn)擊操作獲取圖像的像素坐標(biāo)和像素值 四、生成一個(gè)簡(jiǎn)單的灰度圖像。

    Opencv C++ 三、通過(guò)鼠標(biāo)點(diǎn)擊操作獲取圖像的像素坐標(biāo)和像素值 四、生成一個(gè)簡(jiǎn)單的灰度圖像。

    該操作首先需要?jiǎng)?chuàng)建一個(gè)頭文件 在該頭文件內(nèi)進(jìn)行編寫(xiě): 而后雙擊打開(kāi)源文件: 在源文件內(nèi)編寫(xiě): 執(zhí)行該程序: 顯示內(nèi)容為上圖,而后在右側(cè)image窗口內(nèi)任意點(diǎn)擊一個(gè)位置: 就會(huì)顯示該位置的坐標(biāo)信息和像素值。 由于該圖像為RBG彩色圖像,不是單通道的灰度影像,不能顯

    2024年04月28日
    瀏覽(17)
  • 人工智能(8):Numpy的使用

    人工智能(8):Numpy的使用

    1 Numpy介紹 Numpy(Numerical Python)是一個(gè)開(kāi)源的Python科學(xué)計(jì)算庫(kù),用于快速處理任意維度的數(shù)組。 Numpy支持常見(jiàn)的數(shù)組和矩陣操作。對(duì)于同樣的數(shù)值計(jì)算任務(wù),使用Numpy比直接使用Python要簡(jiǎn)潔的多。 Numpy使用ndarray對(duì)象來(lái)處理多維數(shù)組,該對(duì)象是一個(gè)快速而靈活的大數(shù)據(jù)容器。

    2024年02月07日
    瀏覽(25)
  • OpenCV學(xué)習(xí)(五)——圖像基本操作(訪問(wèn)圖像像素值、圖像屬性、感興趣區(qū)域ROI和圖像邊框)

    OpenCV學(xué)習(xí)(五)——圖像基本操作(訪問(wèn)圖像像素值、圖像屬性、感興趣區(qū)域ROI和圖像邊框)

    訪問(wèn)像素值并修改 訪問(wèn)圖像屬性 設(shè)置感興趣區(qū)域(ROI) 分割和合并圖像 5.1 訪問(wèn)像素值并修改 訪問(wèn)像素值 修改像素值 簡(jiǎn)單訪問(wèn)每個(gè)像素值并修改比較緩慢,一般不使用。 Numpy數(shù)組方法 array.item() 和 array.itemset() 被認(rèn)為更好,但是它們始終返回標(biāo)量。 更好的像素訪問(wèn)和編輯方

    2024年02月06日
    瀏覽(300)
  • vscode和像素大廚使用圖片時(shí)遇到的問(wèn)題

    1、截屏出來(lái)的圖片放到像素大廚量時(shí)發(fā)現(xiàn)量出來(lái)的像素太大 解決方法一: 設(shè)置設(shè)計(jì)圖為2x,這樣能把誤差降低很多,但跟實(shí)際大小還是差了一些,可以自己在微調(diào)。如下圖所示 解決方法二: 右鍵圖片選擇編輯或用畫(huà)圖工具打開(kāi),里面設(shè)置重新調(diào)整大小,調(diào)整為你截屏的那個(gè)

    2024年02月10日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包