問題タブ [gpuimage]

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.

0 投票する
1 に答える
1229 参照

iphone - GPUImageMovieWriterフレームpresentationTime

2つの入力が接続されたGPUImageColorDodgeBlendフィルターがあります。

  1. GPUImageVideoCameraiPhoneビデオカメラからフレームを取得しているA。
  2. GPUImageMovieライブカメラフィードに重ねたい(MP4)ビデオファイルです。

次に、GPUImageColorDodgeBlendは2つの出力に接続されます。

  1. GPUImageImageView動作中のブレンドのライブプレビューを提供するためのA。
  2. GPUImageMovieWriter録画ボタンが押されたときにムービーをストレージに書き込むためのA。

これで、ビデオの録画が開始される前に、すべてが100%正常に機能します。はGPUImageVideoライブカメラビデオにうまくブレンドされており、問題や警告は報告されていません。

ただし、GPUImageMovieWriter録音を開始すると、ランダムに問題が発生し始めます。約80〜90%の時間、GPUImageMovieWriter完全に機能し、エラーや警告はなく、出力ビデオは正しく書き込まれます。

ただし、約10〜20%の時間(そして私が見る限り、これはかなりランダムです)、記録プロセス中に問題が発生しているように見えます(画面上のプレビューは引き続き正常に機能します)。

具体的には、何百ものProgram appending pixel buffer at time:エラーが発生し始めます。

このエラーは、の- (void)newFrameReadyAtTime:(CMTime)frameTime atIndex:(NSInteger)textureIndexメソッドが原因で発生しGPUImageWriterます。

frameTimeこの問題は、このメソッドに報告される値の問題によって引き起こされます。

私が見ることができることから、問題は、ビデオカメラによって番号が付けられたフレームをライターが時々受信することによって引き起こされます( 1000000000のタイムスケールで64616612394291のような非常に高い時間値を持つ傾向があります)。ただし、ライターは、によって番号が付けられたフレームを取得することがあります。フレームの番号ははるかに低くなります(タイムスケールが30000の200200など)。GPUImageMovie

GPUImageWriterフレーム値が増加している限りは問題ないようですが、フレーム値が減少すると、書き込みが停止し、Program appending pixel buffer at time:エラーが発生します。

私はかなり一般的なことをしているようですが、これはバグとしてどこにも報告されていないので、私の質問は次のとおりです(これらのいずれかまたはすべてへの回答はありがたいです-必ずしもすべてが別々に順番に回答される必要はありません質問):

  • 値はどこから来るのですか?ソースまたはソースに従って番号が付けられているframeTimeかどうかが、なぜそれほど恣意的に見えるのですか?なぜそれがそれぞれの間で交互になるのですか?フレーム番号付けスキームはすべてのフレームにわたって均一であるべきではありませんか?frameTimeGPUImageVideoCameraGPUImageMovie

  • この問題はsが増加しないことが原因であると考えるのは正しいframeTimeですか?

  • ...もしそうなら、なぜ100%の時間、画面上で問題なくsGPUImageViewを受け入れて表示するのに、注文する必要があるのでしょうか。frameTimeGPUImageMovieWriter

  • ...もしそうなら、どうすればframeTime入ってくるが有効であることを確認できますか?if (frameTime.value < previousFrameTime.value) return;ほとんどの場合、機能する数の少ないフレームをスキップするように追加してみました。残念ながら、これを設定すると、特定のポイントの後にすべてのフレームがスキップされるためplaysAtActualSpeedGPUImageMovieこれははるかに効果が低くなる傾向があります。

...またはおそらくこれはバグです。その場合はGitHubで報告する必要がありますが、ここで見落としていることがあるかどうかを知りたいと思いますframeTime

0 投票する
1 に答える
815 参照

iphone - GPU 画像写真アプリのクラッシュ

画像効果に GPU 画像オープン ソース フレームワークを使用しています。問題は、画像にフィルターを定期的に適用しようとすると、アプリがメモリ警告を表示してからクラッシュすることです。

コードは次のとおりです。

この問題を解決するのを手伝ってください。ありがとう

0 投票する
1 に答える
4078 参照

ios - GPUImage は、選択した色を変更するカスタム フィルターを作成します


驚くべき GPU 画像フレームワークを使用して、いくつかの色ベクトルをユニフォームとして渡すカスタム フラグメント シェーダーを使用してカスタム フィルターを作成しようとしています。私は Quartz を使ってそれを作成しましたが、動作しますが、このフレームワークを使用して OpenGL の世界に最初の一歩を踏み出すので、GPU 処理を試してみたいと思います。
私が作ったフラグメントシェーダは問題なく動作しているようですが、出力に問題があります。ネズミイルカをデバッグするためのサンプルを投稿します

結果の画像には多くのアーティファクトがあります。画面上ではピクセルレートのように見え、ディスクに書き込むとうまく作成されません。ここにいくつかの画面があります。
開始イメージ 画面からのフィルタリングされた画像 ディスクからのフィルタリングされた画像

最初の画像は開始画像、2 番目は iPhone 画面上のフィルタリングされた mage のスクリーンショット、3 番目はディスクに書き込まれたフィルタリングされた画像です。それを掘り下げてみると、テクセルとピクセルは同じものではないことを思い出したので、おそらくそれらを正しくマッピングしていません。掲載順位を 1:1 にしたいのですが、おそらく実現していません。
どうすればそれを達成できますか?
ありがとう、アンドレア

0 投票する
1 に答える
2208 参照

gpuimage - GPUイメージ-2つの異なるケースセットからの2つのGPUImageFilterGroupsを結合します

Brad LarsonのGPUImageを使用し、GoBackSpacesのDLCImagePickerControllerに基づいてiPhone用の写真アプリを作成しています(これまで多くのことを学ぶのに役立ちました)が、アプリに持たせたい機能の1つに固執しています。私には2つのケースがあります:

ケースA:「フィルムロール」を表す一連のケース(フィルターケース)ケースB:「カメラレンズ」を表す一連のケース(レンズケース)

それぞれの場合に、GPUImageFilterGroupsがあります。ユーザーがケースAからフィルターを選択してから、同じStaticPictureにケースBから別のフィルターを適用できるようにしたいと思います。つまり、ユーザーがケースAからフィルターを選択した後、StaticPictureは選択したフィルターに応じて変化し、その変更されたStaticPictureにケースBから別のフィルターを適用したいと思います。私はそれをいくつかの異なる方法で試しましたが、運がありませんでした。ケースBからフィルターを選択すると、StaticPictureが消えます。何かを保持する必要がありますか?どんな助けでも本当にありがたいです。これが私のコードです:

初心者からのこの質問についての説明や助けを事前に感謝します。

0 投票する
1 に答える
3186 参照

iphone - iOS GPUImage を使用してヒストグラムを生成するには?

https://github.com/luisespinoza/LEColorPickerプロジェクトで作業して、プロジェクト GPUImage (https://github.com/BradLarson/GPUImage) を使用して、任意の入力 UIImage からヒストグラム UIImage を生成しようとしています。

私が使用している現在のコードは次のとおりです。

問題は、histogram.png が入力画像ごとに黒い線になることです。

では、iOS GPUImage を使用してヒストグラム UIImage を生成する正しいコードはどのようになりますか?

0 投票する
0 に答える
661 参照

ios - ビデオ ファイルの処理中にバックグラウンドに切り替えると GPUImage がクラッシュする

GPUImageバックグラウンドへの切り替え中に問題が発生しています。

私のアプリでは、GPUImageクラスを使用してビデオをキャプチャしません。ユーザーがロールからビデオを選択すると、アプリは 3 つの GPUImage フィルターを適用します。ビデオ処理がまだ進行中のときに、ユーザーがアプリをバックグラウンドに送信すると、問題が発生します。

アプリがバックグラウンドにある間は GPU にアクセスできないことがわかっているので、 : メソッドとメソッドapplicationWillResignActiveを呼び出します。問題は、このメソッドを呼び出しても、まだエラーが発生することです。GPUImageMovieGPUImageMovieWriter endProcessinggpus_ReturnNotêrmittedKillClient

これを修正する方法についてのアイデアはありますか?

前もって感謝します!

0 投票する
1 に答える
851 参照

ios - GPUImage フレームワークによる畳み込み UIImage

GPUImage フレームワークの GPUImage3x3ConvolutionFilter を使用しようとしていますが、機能していません。

これは私のコードです。白い画像しか得られません。

私も変更しようとしています:

為に:

0 投票する
0 に答える
1619 参照

iphone - GPUImage の GPUImageOpacityFilter が期待どおりに動作せず、アルファ チャネルが変更されない

Overlay Blendストック画像の不透明度が100%未満のカメラフィードの出力でストック画像を作成しようとしています。GPUImageOpacityFilterフィルタースタックに a を配置するだけで、すべてうまくいくと思いました。

  1. GPUImageVideoCamera -> MY_GPUImageOverlayBlendFilter
  2. GPUImagePicture -> GPUImageOpacityFilter (不透明度 0.1f) -> MY_GPUImageOverlayBlendFilter
  3. MY_GPUImageOverlayBlendFilter -> GPUImageView

しかし、その結果、GPUImagePicture の 0.1f アルファ バージョンが GPUImageVideoCamera にブレンドされたわけではなく、GPUImagePicture の色/コントラストが少し柔らかくなり、それがブレンドされました。だから私はいくつかの検索を行い、提案に基づいて GPUImageOpacity フィルターから UIImage を取得し、それを BlendFilterimageFromCurrentlyProcessedOutputに送信しようとしました。

  1. GPUImagePicture -> MY_GPUImageOpacityFilter (不透明度 0.1f)
  2. [MY_GPUImageOpacityFilter imageFromCurrentlyProcessedOutput] -> MY_alphaedImage
  3. GPUImagePicture (MY_alphaedImage) -> MY_GPUImageOverlayBlendFilter
  4. GPUImageVideoCamera -> MY_GPUImageOverlayBlendFilter
  5. MY_GPUImageOverlayBlendFilter -> GPUImageView

そして、それは私が期待したとおりに機能しました。それで、なぜ私はしimageFromCurrentlyProcessedOutputなければならないのですか?上記の 2 つのシナリオのコード スニペットを次に示します。

最初の1つ:

二つ目:

0 投票する
0 に答える
386 参照

iphone - 紫外線フィルター効果シミュレーション

iOS アプリで紫外線効果をシミュレートする必要があります。

Histogram Filter -> Saturation -> Gray Scale をかけてみました。しかし、それはうまくいきませんでした。誰でもこれを機能させる方法を教えてもらえますか?

これにGPUImageを使用できますか? この効果を得るには、どのフィルターの組み合わせを適用する必要がありますか?

0 投票する
3 に答える
2957 参照

ios - GPUImage で 2 つ以上の入力テクスチャ フィルターを作成したいと考えています。しかし、私は黒い出力を得ました

GPUImage の GPUImageTwoInputFilter のような新しいフィルターを作りたいです。

これが私のコードです。IFFourInputFilter という名前の基本クラスで、おそらく GPUImageTwoInputFilter です。

IFAmaroFilter という名前のクラスは、IFFourInputFilter を拡張します。

フィルターを使用すると、黒い出力が得られました。以下のコード: