最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決numpy矩陣相減出現(xiàn)的負值自動轉(zhuǎn)正值的問題

 更新時間:2020年06月03日 09:45:35   作者:木易依  
這篇文章主要介紹了解決numpy矩陣相減出現(xiàn)的負值自動轉(zhuǎn)正值的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題描述

今天在使用Numpy中的矩陣做相減操作時,出現(xiàn)了一些本應(yīng)為負值的位置自動轉(zhuǎn)換為了正值,

觀察發(fā)現(xiàn)轉(zhuǎn)換后的正值為原本的負值加上256得到,具體情況如下:

正常情況矩陣相減樣例如下

>>> import numpy as np
>>> arr = np.array([98,100,103,161,192,210])
>>> brr = np.array([105,105,106,197,196,195])
>>> crr = arr-brr
>>> print(crr)
[ -7 -5 -3 -36 -4 15]

錯誤代碼如下:

path = './image/Blur/blur5.png'
kernel_size = (21, 21);
sigma = 0;
img = cv2.imread(path)
img2gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img2blur = cv2.GaussianBlur(img2gray, kernel_size, sigma);
grayMat = np.matrix(img2gray)
blurMat = np.matrix(img2blur)
finalMat = blurMat-grayMat
print(grayMat[0,0:10])
print(blurMat[0,0:10])
print(finalMat[0,0:10])

得到的結(jié)果值如下:

[[173 171 169 171 174 179 181 182 180 180]]
[[172 172 172 173 173 174 174 173 171 168]]
[[255 1 3 2 255 251 249 247 247 244]]

解決方案

以上出現(xiàn)的矩陣相減得到的結(jié)果值自動轉(zhuǎn)換的問題是因為直接通過grayMat = np.matrix(img2gray)

得到的dtype類型是unit8類型的,只需要在開始時設(shè)置為np.int32即可正常完成相減.即:

grayMat = np.matrix(img2gray ,dtype=np.float64)

補充知識:有關(guān)于python數(shù)字圖像處理出現(xiàn)矩陣相減沒有負數(shù)(值都在0-255)的情況分析

問題的發(fā)現(xiàn):

這些天在做我們本校課程機器學習大作業(yè)的過程中遇到了一些瓶頸:在我使用有關(guān)數(shù)字圖像矩陣運算的過程中兩個參數(shù)矩陣相減(譬如 R通道的值-G通道的值)的時候,測試結(jié)果的輸出一直是正數(shù),且其值都在(0-255)中,這給我?guī)砹瞬簧俾闊?/p>

測試代碼如下

print(imgs_train[1][:,:,1])
print("====================================")
print(imgs_train[1][:,:,2])
print("====================================")
print(imgs_train[1][:,:,1]-imgs_train[1][:,:,2])

輸出結(jié)果為

[[141 143 144 ... 90 90 68]
 [139 141 141 ... 88 90 68]
 [140 141 140 ... 87 90 68]
 ...
 [ 52 52 52 ... 85 83 81]
 [ 52 52 52 ... 85 83 81]
 [ 52 52 52 ... 85 83 81]]
====================================
[[171 173 172 ... 106 107 84]
 [169 171 169 ... 106 107 86]
 [169 170 169 ... 107 109 88]
 ...
 [ 40 40 43 ... 68 66 64]
 [ 40 40 43 ... 68 66 64]
 [ 40 40 43 ... 68 66 64]]
====================================
[[226 226 228 ... 240 239 240]
 [226 226 228 ... 238 239 238]
 [227 227 227 ... 236 237 236]
 ...
 [ 12 12 9 ... 17 17 17]
 [ 12 12 9 ... 17 17 17]
 [ 12 12 9 ... 17 17 17]]

可以看得出來,雖然兩個矩陣相減,但是理應(yīng)為負值的元素卻像是取模了一般又變?yōu)榱苏龜?shù)(255+計算結(jié)果),導致這樣情況的原因其實是因為矩陣的元素類型有關(guān)。默認來說這樣的矩陣類型是uint8即無符號8bit整型,這樣進行相減當然得不出正確結(jié)果。

問題的解決

在查閱相關(guān)資料之后,發(fā)現(xiàn)可以通過設(shè)置其元素格式進行運算,從而規(guī)避了無負數(shù)結(jié)果的發(fā)生。

測試代碼如下:

print(imgs_train[1][:,:,1])
print("====================================")
print(imgs_train[1][:,:,2])
print("====================================")
print(imgs_train[1][:,:,1].astype(np.float32)-imgs_train[1][:,:,2].astype(np.float32))

結(jié)果顯示為:

[[141 143 144 ... 90 90 68]
 [139 141 141 ... 88 90 68]
 [140 141 140 ... 87 90 68]
 ...
 [ 52 52 52 ... 85 83 81]
 [ 52 52 52 ... 85 83 81]
 [ 52 52 52 ... 85 83 81]]
====================================
[[171 173 172 ... 106 107 84]
 [169 171 169 ... 106 107 86]
 [169 170 169 ... 107 109 88]
 ...
 [ 40 40 43 ... 68 66 64]
 [ 40 40 43 ... 68 66 64]
 [ 40 40 43 ... 68 66 64]]
====================================
[[-30. -30. -28. ... -16. -17. -16.]
 [-30. -30. -28. ... -18. -17. -18.]
 [-29. -29. -29. ... -20. -19. -20.]
 ...
 [ 12. 12. 9. ... 17. 17. 17.]
 [ 12. 12. 9. ... 17. 17. 17.]
 [ 12. 12. 9. ... 17. 17. 17.]]

綜上所述,在遇到矩陣不明數(shù)值類型的時候可以指定其類型,之后矩陣元素就會以這樣的數(shù)值類型進行計算。

以上這篇解決numpy矩陣相減出現(xiàn)的負值自動轉(zhuǎn)正值的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python基于pip實現(xiàn)離線打包過程詳解

    Python基于pip實現(xiàn)離線打包過程詳解

    這篇文章主要介紹了Python基于pip實現(xiàn)離線打包過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • python實現(xiàn)數(shù)獨游戲 java簡單實現(xiàn)數(shù)獨游戲

    python實現(xiàn)數(shù)獨游戲 java簡單實現(xiàn)數(shù)獨游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)數(shù)獨游戲和java實現(xiàn)數(shù)獨游戲的相關(guān)代碼,比較兩種語言實現(xiàn)數(shù)獨游戲的區(qū)別
    2018-03-03
  • python中如何進行連乘計算

    python中如何進行連乘計算

    在本篇文章里小編給大家分享的是關(guān)于python連乘計算的代碼,有興趣的朋友們可以參考學習下。
    2020-05-05
  • Python爬取YY評級分數(shù)并保存數(shù)據(jù)實現(xiàn)過程解析

    Python爬取YY評級分數(shù)并保存數(shù)據(jù)實現(xiàn)過程解析

    這篇文章主要介紹了Python爬取YY評級分數(shù)并保存數(shù)據(jù)實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python學習筆記之變量、自定義函數(shù)用法示例

    Python學習筆記之變量、自定義函數(shù)用法示例

    這篇文章主要介紹了Python學習筆記之變量、自定義函數(shù)用法,結(jié)合實例形式分析了Python變量、自定義函數(shù)的概念、功能、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-05-05
  • python發(fā)騰訊微博代碼分享

    python發(fā)騰訊微博代碼分享

    本文介紹了利用qwebview寫的一個發(fā)騰訊微博的功能,大家可以改成新浪微博,原理是一樣的,大家參考使用吧
    2014-01-01
  • Python+Pygame實現(xiàn)之走四棋兒游戲的實現(xiàn)

    Python+Pygame實現(xiàn)之走四棋兒游戲的實現(xiàn)

    大家以前應(yīng)該都聽說過一個游戲:叫做走四棋兒。直接在家里的水泥地上用燒完的炭火灰畫出幾條線,擺上幾顆石頭子即可。當時的火爆程度可謂是達到了一個新的高度。本文將利用Pygame實現(xiàn)這一游戲,需要的可以參考一下
    2022-07-07
  • 使用Python批量移除Word文檔水印的代碼示例

    使用Python批量移除Word文檔水印的代碼示例

    移除Word文檔中的水印可以減少不必要的麻煩,通過使用Python這樣的編程語言,我們可以輕松實現(xiàn)自動化操作,高效地移除Word文檔中的水印,確保文檔的專業(yè)性和準確性,本文將介紹如何使用Python批量移除Word文檔中的水印
    2024-07-07
  • python獲取屏幕截圖區(qū)域坐標簡單代碼和思路

    python獲取屏幕截圖區(qū)域坐標簡單代碼和思路

    這篇文章主要介紹了python獲取屏幕截圖區(qū)域坐標的相關(guān)資料,文章介紹了一個獲取屏幕截圖區(qū)域信息的簡單方法,通過鼠標操作確定截圖區(qū)域的左上角和右下角坐標,計算出區(qū)域的寬度和高度,并返回這些參數(shù),以便進行后續(xù)的數(shù)字識別和比較操作,需要的朋友可以參考下
    2024-11-11
  • Pytorch深度學習之實現(xiàn)病蟲害圖像分類

    Pytorch深度學習之實現(xiàn)病蟲害圖像分類

    PyTorch是一個開源的Python機器學習庫,基于Torch,用于自然語言處理等應(yīng)用程序。它具有強大的GPU加速的張量計算和自動求導系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)。本文將介紹如何通過PyTorch實現(xiàn)病蟲害圖像分類,感興趣的可以學習一下
    2021-12-12

最新評論

宜兰县| 洮南市| 社旗县| 神农架林区| 南漳县| 平顶山市| 阜平县| 饶阳县| 天镇县| 泽州县| 宿州市| 富民县| 启东市| 伊宁市| 炉霍县| 自治县| 吉水县| 濮阳县| 白银市| 历史| 青龙| 鹤壁市| 辛集市| 百色市| 龙井市| 五台县| 桃江县| 汉源县| 宁城县| 汝城县| 吴川市| 安西县| 绍兴市| 璧山县| 新平| 方正县| 建阳市| 晴隆县| 都江堰市| 合作市| 上犹县|