問題タブ [imagedata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html5-canvas - 「ImageData」データ配列を使用してアニメーション化すると、非常に予期せぬグリッチのような結果が生じる
ImageData
最近、データ配列を使用してキャンバス全体にグラデーションを引き伸ばしました。つまり、メソッドctx.getImageData()
とctx.putImageData()
メソッドであり、「これは、動くオブジェクトでいっぱいのキャンバスをアニメートする非常に効率的な方法である可能性がある」と考えました。そのため、ステートメントと一緒にメイン関数にラップしましたrequestAnimationFrame(callback)
が、それが奇妙なことです。説明で私ができる最善のことは、キャンバスのピクセルの最も左の列がピクセルの最も右の列に複製されているようなものであり、get
およびput
ctx
メソッドに指定した座標に基づいて、これは奇妙な結果をもたらす可能性があると言うことです.
0, 0
私は次のようにキャンバスを対象とする get メソッドと put メソッドから始めました。
しかし、キャンバスの右側が間違っていることにすぐに気付きました。グラデーションが最初からやり直し、最後のピクセルが何らかの理由で触れられなかったように:
そのため、描画領域を縮小してput
ImageData 座標を変更し、描画された画像とキャンバスの端の間にスペースを確保し、get
座標を変更して、キャンバスの右端にあるその線を削除しました。
かわいい!しかし、間違っている...ので、codepenで再現しました。誰かがこの行動を理解し、克服するのを手伝ってくれますか?
注: codepen には縮小された描画領域があります。座標を 0に変更するget
と、基本的に最初の例と同じように動作することがわかりますが、予想される正方形と予想外の線の間に空白があります。とは言っても、最も興味深い動作のためにget
at 1 とat 0 のままにしました。put
keras - Keras : 大規模な画像データセットの処理
大規模な画像データセットを使用してモデルを適合させようとしています。14 GB のメモリ RAM があり、データセットのサイズは 40 GB です。を使用しようとしましfit_generator
たが、テーマを使用した後にロードされたバッチを削除しない方法に終わります。
とにかく問題やリソースをソールする必要がある場合は、それを指摘していただきありがとうございます。
ありがとう。
ジェネレーターコードは次のとおりです。
次に、トレーニング イメージと検証イメージ用に 2 つのジェネレーターを作成しました。
fit_generator 呼び出しは次のとおりです。
javascript - javascript ImageData のコピーまたは移動のパフォーマンス
Web ページのキャンバスに表示される SDR 受信機の「ウォーターフォール」図を書いています。
キャンバスのサイズは w=1000 h=800 ピクセルです。一番上の行は、サーバーから 50 ミリ秒ごとに配信されます。ブラウザー (javascript を使用) は、すべての行を 1 行下に移動してから、新しい行を先頭に挿入する必要があります。これにより、すべてのピクセルが上から下に移動する滝のような外観になります。
正常に動作していますが、ピクセル移動の CPU 負荷が非常に高く、ラズベリーには高すぎます。
私がやっていることは次のとおりです。
また、imagedata [some index] のピクセル データを直接コピーしようとしましたが、これはほぼ同じパフォーマンスの低下をもたらします。
別の C プログラムでは、非常に高速な単純な memcpy 操作で同じことを行いました。しかし、Javascript で何をすべきでしょうか? 3.200.000 バイトである 800.000 ピクセルがあります。Javascript で可能な限り最高のパフォーマンスでそれらをコピーまたは移動するにはどうすればよいですか?
regex - 正規表現を使用した Python
私を助けてください。
以下のようなパスファイルのリストがあります。
このリストは、get_image_files を使用して作成されました。
オウムの画像一覧です。ここブラジルではパパガイオ=オウム。
機械学習の分類にファイル名を使用するために、次の正規表現を使用しようとしました。
ただし、ImageDataBunch で使用した後は...
返された次のエラー メッセージを受け取りました。
IndexError: そのようなグループはありません
そして、私はそれを解決する方法がわかりません。誰かが私を助けることができますか?
明確にするために、ハード ドライブのいくつかのファイルを使用して、fast.ai コースのレッスン 1 を再現しようとしています。
node.js - React/Node サーバーに ImageData を送信するときに問題が発生しました
キャンバスの imageData をサーバーに送信して処理する際に問題が発生するという問題があります。
データを送信するための反応/還元アクションは次のとおりです。
リクエストを処理する方法は次のとおりです。
以下は、traitement メソッドがどのようなものかの例です。
送信する直前の console.log() (送信する予定のもの):
サーバーから取得したものを貼り付けることはできませんが、幅と高さのキーを失い、typeof は ImageData ではなく Object であり、データ キーは Uint8ClampedArray ではなく typeof Object です。
だから私の質問は次のとおりです:ルートが送信した同じデータにアクセスして処理できるようにするにはどうすればよいですか?
ご覧のとおり、文字列化されたjsonとして送信し、サーバーにjsonボディパーサーミドルウェアを持っています。おそらくそこからのものです。content-typeヘッダーについても考えました
EDIT:Kaiidoのおかげで、1つの例外で動作するようにコードを修正しました
私のコードをどのように変更したか、フロント:
戻る:
1 つの問題が残っています: テスト用に 150*300px の画像を使用していると仮定すると、サーバーの応答を送信するまで、データ配列の長さは 180000 (300*150*4) である必要があります。フロントが呼び出す応答を受信するとres.arrayBuffer()
、新しい Uint8ClampedArray が作成されますが、その場合、長さは 180000 ではなく 543810 になります。カイドウが言ったように、その配列をスライスしたいかもしれませんが、試してみましたが、うまくいきません。
どのようにスライスすればよいですか?180000 の最初のもの ? 180000 続くもの ? 他の方法?