欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談python opencv對圖像顏色通道進行加減操作溢出

 更新時間:2020年06月03日 08:59:16   作者:E_ven518  
這篇文章主要介紹了淺談python opencv對圖像顏色通道進行加減操作溢出,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

由于opencv讀入圖片數(shù)據(jù)類型是uint8類型,直接加減會導致數(shù)據(jù)溢出現(xiàn)象

(1)用Numpy操作

可以先將圖片數(shù)據(jù)類型轉換成int類型進行計算,

data=np.array(image,dtype='int')

經(jīng)過處理后(如:遍歷,將大于255的置為255,小于0的置為0)

再將圖片還原成uint8類型

data=np.array(image,dtype='uint8')

注意:

(1)如果直接相加,那么

當像素值 > 255時,結果為對256取模的結果,例如:(240+66) % 256=50

而不是自動按照255處理

(2)如果直接相減,那么

當像素值<0時,結果為加上256的結果,例如:(100-140)+ 256 = 216

而不是自動按照0處理

例如:

選取一張圖片R分量做實驗

情況一:直接numpy操作

先加到240,再加66,超過了255,可以看到,并不默認255,而是變成了50

再試試相減操作:再減去100,本來結果是-50,但是可以看到,變成了206(-50+256)

(2)用opencv自帶函數(shù)操作

圖像相加:

cv2.add()

像素值>255, 直接自動按照255處理

圖像相減:

cv2.subtract()

像素值小于0,直接自動按照0處理

例如:

r加上300,自動變成255

同理,小于0的自動變?yōu)?

以上兩種方法可以根據(jù)需要選擇。

補充知識:Opencv numpy中uint8類型存儲圖像

用opencv處理圖像時,可以發(fā)現(xiàn)獲得的矩陣類型都是uint8

import cv2 as cv
img=cv.imread(hello.png)
print(img)
array([[[...],
    [...],
    [...]]],dtype='uint8')

uint8是專門用于存儲各種圖像的(包括RGB,灰度圖像等),范圍是從0–255

這里要注意如何轉化到uint8類型

1: numpy有np.uint8()函數(shù),但是這個函數(shù)僅僅是對原數(shù)據(jù)和0xff相與(和最低2字節(jié)數(shù)據(jù)相與),這就容易導致如果原數(shù)據(jù)是大于255的,那么在直接使用np.uint8()后,比第八位更大的數(shù)據(jù)都被截斷了,比如:

>>>a=[2000,100,2]
>>>np.uint8(a)
array([208, 100, 2], dtype=uint8)

2: 用cv2.normalize函數(shù)配合cv2.NORM_MINMAX,可以設置目標數(shù)組的最大值和最小值,然后讓原數(shù)組等比例的放大或縮小到目標數(shù)組,如下面的例子中是將img的所有數(shù)字等比例的放大或縮小到0–255范圍的數(shù)組中,

cv2.normalize(img, out, 0, 255, cv2.NORM_MINMAX)

然后改變數(shù)據(jù)類型

np.array([out],dtype=‘uint8')

總結:

要想將當前的數(shù)組作為圖像類型來進行各種操作,就要轉換到uint8類型,轉換的方式推薦使用第二種,因為第一種在值大于255以后就容易丟失。

以上這篇淺談python opencv對圖像顏色通道進行加減操作溢出就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python實現(xiàn)自定義讀寫分離代碼實例

    Python實現(xiàn)自定義讀寫分離代碼實例

    這篇文章主要介紹了Python實現(xiàn)自定義讀寫分離代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Python實現(xiàn)老照片修復之上色小技巧

    Python實現(xiàn)老照片修復之上色小技巧

    你會黑白照片上色嗎,今天小編帶你用python來給黑白照片上個色,這里我們借助百度AI開放平臺的“黑白圖像上色”接口,僅需二十行代碼即可實現(xiàn),感興趣的朋友來看看吧
    2021-10-10
  • spark?dataframe全局排序id與分組后保留最大值行

    spark?dataframe全局排序id與分組后保留最大值行

    這篇文章主要為大家介紹了spark?dataframe全局排序id與分組后保留最大值行實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 利用python中集合的唯一性實現(xiàn)去重

    利用python中集合的唯一性實現(xiàn)去重

    集合,用{ }表示,集合中所有元素具有唯一性。這篇文章給大家介紹利用python中集合的唯一性實現(xiàn)去重,感興趣的朋友一起看看吧
    2020-02-02
  • 總結Python使用過程中的bug

    總結Python使用過程中的bug

    今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著Python使用過程中的bug展開,文中有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • python基于twisted框架編寫簡單聊天室

    python基于twisted框架編寫簡單聊天室

    這篇文章主要為大家詳細介紹了python基于twisted框架編寫簡單聊天室,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python flask框架如何顯示圖像到web頁面

    Python flask框架如何顯示圖像到web頁面

    這篇文章主要介紹了Python flask框架如何顯示圖像到web頁面,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Django通過設置CORS解決跨域問題

    Django通過設置CORS解決跨域問題

    這篇文章主要介紹了Django 通過設置CORS解決跨域問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 利用python繪制正態(tài)分布曲線

    利用python繪制正態(tài)分布曲線

    這篇文章主要介紹了如何利用python繪制正態(tài)分布曲線,幫助大家更好的利用python進行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2021-01-01
  • python pandas dataframe 按列或者按行合并的方法

    python pandas dataframe 按列或者按行合并的方法

    下面小編就為大家分享一篇python pandas dataframe 按列或者按行合并的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論