第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

提取并連接 Numpy 數(shù)組的第 3 維

提取并連接 Numpy 數(shù)組的第 3 維

明月笑刀無情 2021-10-26 18:58:23
背景從一個計算機愛好者的視頻中,我有了玩最低有效位隱寫術(shù)的想法?,F(xiàn)在,我正在嘗試使用 Numpy 以圖像的位格式提取和連接所有 RGB 值。最終,我只需要數(shù)組的第 7 位和第 8 位。設(shè)置我用Pillow以下方式加載圖像并提取位:from PIL import Imageimport numpy as npimg = Image.open('test.png')arr = np.array(img)bits = np.unpackbits(arr, axis=2)問題bits對于 1600x1200 像素的圖像,該陣列現(xiàn)在具有例如 (1600, 1200, 24) 的形狀。我現(xiàn)在需要的是為每個像素提取 24 位將所有 24 位塊連接成一個一維數(shù)組。僅提取第 7、8、15、16、23 和 24 位,因此僅提取每個顏色分量的最后 2 位。到目前為止的方法我試圖分裂沿著第二軸的3D陣列分為3組。然后我可以遍歷 1200 個列表,每個列表包含 3 個列表并提取最后 2 位,如下所示:sp = np.split(bits, 3, axis=2)for i in range(0, 1200):    for j in range(0, 3):        print(sp[j][0][i][-2:])題雖然我的上述方法有效,但我覺得必須有一個更高效的解決方案,只使用Numpy Magic?. 你知道更好的方法嗎?
查看完整描述

1 回答

?
慕勒3428872

TA貢獻1848條經(jīng)驗 獲得超6個贊

這是一個XY 問題。您不需要將像素轉(zhuǎn)換為二進制或使用顯式方法提取任何特定位,因為這樣您就必須再次將其全部拼接起來。你可以直接用按位運算做你想做的事,因為“二進制”和十進制是同一個數(shù)字的兩種表示。ANDs 和SHIFTs 的組合將允許您將整數(shù)的任何部分歸零,或隔離特定范圍的位


例如,


>> (107 >> 3) & 7

5

因為


Decimal: 107      >> 3 = 13       & 7        = 5

Binary : 01101011 >> 3 = 00001101 & 00000111 = 00000101

           |-|                |-| 

         we want

         these 3

現(xiàn)在,假設(shè)您的信息是世界“你好”。您可以像這樣方便地將每個字節(jié)分成四部分。


secret = b'hello'

bits = []

for byte in secret:

    for i in range(6, -1, -2):

        bits.append((byte >> i) & 3)

bits = np.array(bits)

由于每個bits元素包含兩位,因此值的范圍可以在 0 到 3 之間。如果您考慮二進制中的字母 'h',即 '01|10|10|00',您可以看到它的前幾個值是bits如何1、2、2、0 等


為了利用 numpy 中的矢量化操作,我們應(yīng)該展平我們的圖像數(shù)組,我假設(shè)它的形狀為 (height, width, 3)。


np.random.seed(0)

img = np.random.randint(0, 255, (1600, 1200, 3)).astype(np.uint8)

shape = img.shape

# this specific type of flattening puts the pixels in your desired order, i.e.,

# pixel (0, 0) red-green-blue, pixel (0, 1) red-green-blue, etc

flat_img = img.reshape(-1).copy()

現(xiàn)在嵌入很簡單


length = len(bits)

flat_img[:length] = (flat_img[:length] & 252) + bits

stego_img = flat_img.reshape(shape)


查看完整回答
反對 回復(fù) 2021-10-26
  • 1 回答
  • 0 關(guān)注
  • 312 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號