コード内のエラー(整数のスカラー配列のみがスカラーインデックスに変換できます)

リース・アベド

コード内でエラーが発生しました(TypeError:整数スカラー配列のみがスカラーインデックスに変換できます)。enumerateオブジェクトを使用しているため、(unit8)を(int)に変換する必要があると思いましたが、同じエラーが発生し続けます。コードは次のとおりです。

import cv2
import numpy as np

B=8 # blocksize 
img1 = cv2.imread(r'C:\Users\Leith\Desktop\Test Images\Goldhill_Final.bmp')
h,w=np.array(img1.shape[:2])/B * B
h=int(h)
w=int(w)

Trans_Color=cv2.cvtColor(img1, cv2.COLOR_BGR2LAB)
Trans_Color=Trans_Color.astype(int)
L,A,B=cv2.split(Trans_Color)

Three_Channels=[Trans_Color[:,:,0],A,B]

QY=np.array([[16,11,10,16,24,40,51,61],
                         [12,12,14,19,26,48,60,55],
                         [14,13,16,24,40,57,69,56],
                         [14,17,22,29,51,87,80,62],
                         [18,22,37,56,68,109,103,77],
                         [24,35,55,64,81,104,113,92],
                         [49,64,78,87,103,121,120,101],
                         [72,92,95,98,112,100,103,99]])

QC=np.array([[17,18,24,47,99,99,99,99],
                         [18,21,26,66,99,99,99,99],
                         [24,26,56,99,99,99,99,99],
                         [47,66,99,99,99,99,99,99],
                         [99,99,99,99,99,99,99,99],
                         [99,99,99,99,99,99,99,99],
                         [99,99,99,99,99,99,99,99],
                         [99,99,99,99,99,99,99,99]])

QF=99.0
if QF < 50 and QF > 1:
    scale = np.floor(5000/QF)
elif QF < 100:
    scale = 200-2*QF
else:
    print("Quality Factor must be in the range [1..99]")
    
scale=scale/100.0
Q=[QY*scale,QC*scale,QC*scale]

TransAll=[]
TransAllQuant=[]
for idx,channel in enumerate(Three_Channels):
    channelrows=channel.shape[0]
    channelcols=channel.shape[1]
    Trans = np.zeros((channelrows,channelcols), np.float32)
    TransQuant = np.zeros((channelrows,channelcols), np.float32)
    blocksV=channelrows/B
    blocksH=channelcols/B
    vis0 = np.zeros((channelrows,channelcols), np.float32)
    vis0[:channelrows, :channelcols] = channel
    vis0=vis0-128
    for row in range(blocksV):
        for col in range(blocksH):
            currentblock = cv2.dct(vis0[row*B:(row+1)*B,col*B:(col+1)*B])
            Trans[row*B:(row+1)*B,col*B:(col+1)*B]=currentblock
            TransQuant[row*B:(row+1)*B,col*B:(col+1)*B]=np.round(currentblock/Q[idx])
    TransAll.append(Trans)
    TransAllQuant.append(TransQuant)

トレースバックは次のとおりです。

runfile( 'C:/ Users / Leith / Desktop / Malicious and Good Websites / FinalDataset / URL / untitled5.py'、wdir = 'C:/ Users / Leith / Desktop / Malicious and Good Websites / FinalDataset / URL')トレースバック(最後の最新の呼び出し):

ファイル "C:\ Users \ Leith \ Desktop \ Malicious and Good Websites \ FinalDataset \ URL \ untitled5.py"、65行目、範囲内の行(blocksV):

TypeError:整数のスカラー配列のみをスカラーインデックスに変換できます

それを修正する方法を模索するのを手伝ってくれませんか?私は感謝します!

ヴァレンティノ

エラーはここにあるはずです:

blocksV=channelrows/B

分割するとき、Pythonは整数を浮動小数点数に変換します。整数を整数で除算していて、結果が整数であると想定されている場合でも(たとえば、2ではなく4/2 = 2.0)。次に、浮動小数点型ではなく整数型を引数として受け入れるrange(blocksV)ため、エラーが発生しrangeます。

それblocksVが整数であることを確認してください:次を使用できます:

blocksV=channelrows//B

//演算子に注意してください)整数型として、除算の整数部分(小数は切り捨てられます)のみを返します。

同じ問題が発生します blocksH=channelcols/B

編集

前のステートメントに加えて、あなたの本当の問題は変数の命名です。あなたはBを再定義しています。

B=8 # blocksize 
...
L,A,B=cv2.split(Trans_Color)

したがって、forループを使用してコードの最新行でBを除算および乗算する場合、ブロックサイズを意味すると思いますが、実際にBcv2.splitによって作成されたnumpy配列です別の名前を使用する必要があります。

将来これを回避するには、より明示的な名前を使用する必要があります(1文字の名前は使用しないでください。この種のエラーを作成するのは、より困難になります)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TypeError:整数スカラー配列のみがスカラーインデックスに変換できます

整数スカラー配列のみがスカラーインデックスに変換できます

「整数スカラー配列のみがスカラーインデックスに変換できます」

整数スカラー配列のみがスカラーインデックスエラーに変換できます

list(map)エラー:TypeError:整数スカラー配列のみをスカラーインデックスに変換できます

エラーのみ整数スカラー配列をスカラーインデックスに変換できます

Python numpyエラー:整数スカラー配列のみをスカラーインデックスに変換できます

TypeError:KFold内では、整数のスカラー配列のみをスカラーインデックスに変換できます

このTypeErrorを解決する方法:整数スカラー配列のみがスカラーインデックスに変換できます

パンダで数値データフレームを整数に変換する際のエラー-「整数スカラー配列のみがスカラーインデックスに変換できます」

Python DataFrame TypeError:整数スカラー配列のみがスカラーインデックスに変換できます

1D numpy concatenate:TypeError:整数スカラー配列のみがスカラーインデックスに変換できます

TypeError:RMSEの計算中に、整数のスカラー配列のみをスカラーインデックスに変換できます

TypeError:KFoldでは、整数のスカラー配列のみをスカラーインデックスに変換できます。

Hill-RSA暗号化の「TypeError:整数スカラー配列のみをスカラーインデックスに変換できます」

Matplotlib TypeErrorを解決する方法:整数スカラー配列のみをスカラーインデックスに変換できます

sklearn LabelEncoder reverse_transform TypeError:整数スカラー配列のみをスカラーインデックスに変換できます

'TypeError:整数スカラー配列のみをスカラーインデックスに変換できます' TensorFlow Object Detection API

(Python)TypeError:整数スカラー配列のみをスカラーインデックスに変換できます

Python TypeError:整数スカラー配列のみをスカラーインデックスに変換できます

TypeError:kfold cvを試行している間、整数スカラー配列のみをスカラーインデックスに変換できます

Python TypeError:整数スカラー配列のみをスカラーインデックスに変換できます

rr.reshape(rr、(a、b))TypeError:整数スカラー配列のみをスカラーインデックスに変換できます。

NumPy配列でリストにインデックスを付けるときのTypeError:整数スカラー配列のみがスカラーインデックスに変換できます

Pythonでgroupby列をカウントするときのエラー-TypeError:整数スカラー配列のみをスカラーインデックスに変換できます

パンダ:データフレームをマージしようとすると、「TypeError:整数のスカラー配列のみをスカラーインデックスに変換できます」というメッセージが表示されます

整数スカラー配列はスカラーインデックスに変換できます

TypeError:データフレーム "to_datetime"の変換中に、整数スカラー配列のみをスカラーインデックスに変換できます

Python:変数範囲が有限の合計「TypeError:整数のスカラー配列のみをスカラーインデックスに変換できます」

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    CSSのみを使用して三角形のアニメーションを作成する方法

  3. 3

    ZScalerと証明書の問題により、Dockerを使用できません

  4. 4

    ドロップダウンリストで選択したアイテムのQComboBoxスタイル

  5. 5

    別のホストからTomcat Managerアプリにアクセスする

  6. 6

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  7. 7

    Windows 10でのUSB入力デバイスの挿入/取り外しの検出

  8. 8

    Python / SciPyのピーク検出アルゴリズム

  9. 9

    MLでのデータ前処理の背後にある直感

  10. 10

    useRefに反応してコンポーネントをスクロールして表示する

  11. 11

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  12. 12

    パンダは異なる名前の列に追加します

  13. 13

    PictureBoxで画像のブレンドを無効にする

  14. 14

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  15. 15

    Pythonを使用して、リストからデータを読み取り、特定の値をElasticsearchにインデックス付けするにはどうすればよいですか?

  16. 16

    LinuxでPySide2(Qt for Python)をインストールするQt Designerはどこにありますか?

  17. 17

    Material-UIでTextFieldエラーの色を条件付きでオーバーライドする方法

  18. 18

    goormIDEは、ターミナルがロードするデフォルトプロジェクトを変更します

  19. 19

    MatplotlibまたはSeabornを使用して、グループ化されたデータから複数のプロットを生成するにはどうすればよいですか?

  20. 20

    Luaの文字列から特定の特殊文字を削除するにはどうすればよいですか?

  21. 21

    Flutterにファイルピッカープラグインを追加するにはどうすればよいですか?

ホットタグ

アーカイブ