問題タブ [ciimage]
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.
ios - Core Imageを使用してランダムノイズCALayerをレンダリングすると、奇妙なアーティファクトが生成されます
プログラムCALayer
で、ピクセルノイズを少し適用するサブクラスを作成しています。このコードは、レイヤーにノイズをレンダリングするという点で機能しますが、画像に奇妙なアーティファクトがあり、根本的な原因を特定できません。
noiseOpacity
これは、問題をより目立たせるために上に向けたサンプル画像です。
ピンクのボックスは、次のビットをUANoisyGradientLayer
持つサブクラスです。CAGradientLayer
基本的に、フィルターへの入力としてCIImage
を使用してinitを作成します。次に、それを描画するときに、(範囲は常にまたは0)を使用してそれを作成し、コンテキストに描画します。CIRandomGenerator
CIColorMonochrome
CGImageRef
self.bounds
infinite
結果はほとんど問題ありませんが、画像でわかるように、ストレッチが行われているようです。ここで何が起きてるの?
ios - CIImageバイトにアクセスすると、アプリがクラッシュします
一部のOSXコードをiOSに移植しており、CIImageのバイトにアクセスする必要があります。OSXバージョンはNSBitmapImageRepでこれを行いますが、iOSではいくつかのフープを飛び越える必要があります。
これが私が実行しようとしているコードです
期待どおりに動作しますが、しばらくするとアプリがクラッシュします。理由はわかりません。私はメモリリーク/アウトオブバウンズメモリを推測しています。すべてが正しく解放されていることがわかる限り...これらの行をコメントアウトしても、何もクラッシュしません。コメントすると、アプリでCGDataProviderReleaseがすぐにクラッシュします。
cocoa - CIImage描画EXC_BAD_ACCESS
だから、私は'sメソッドCIImage
で描画しようとしているものがあります。NSView
-drawRect
これは、画像を描画するために呼び出すコード行です。
outputCoreImage
、、、originalBounds
および[self bounds]
はすべて非nil
であり、実際にはそれぞれの期待値です。Lion(OS X 10.7)では、これは問題なく機能しましたが、Mountain Lion(OS X 10.8)ではEXC_BAD_ACCESS
、この回線でを受け取ります。スタックを上に行くと、壊れた内部関数呼び出しがオンになっていることがわかりますCGLGetPixelFormat
。
ゾンビ、ガードmalloc、ログ例外がすべてオンになっていますが、いずれも有用な情報を返しません。
その他のOpenGLテスト:
このチャンクを追加しました:
私の-windowDidLoad
方法にNSWindowController
。問題なく動作します。
このチャンクを追加しました:
別NSView
の'sに-drawRect
。で同じエラーが発生しましたCGLGetPixelFormat
。
レーダー:
#macdevにいる人々は、これはOSの問題であると信じているようで、私は反対する傾向はありません。問題を説明し、この質問にリンクするレーダー(rdar:// 11980704)を提出しました。
回避策:
ソフトウェアレンダラーを使用して画像を強制的に描画するように見えますが、問題は「解決」されます。少しぼやけて遅いですが、クラッシュしません。
iphone - IOS 6 顔検出が機能しない
次のコードを使用して、IOS 5 の顔を検出しました。
このコードを使用すると、IOS 5 で顔を検出できますが、最近、システムを Xcode 4.4 と IOS 6 にアップグレードしました。現在、顔検出が正しく機能していません。
IOS 6 で顔を検出するために必要な変更。
どんな種類のヘルプも大歓迎です
objective-c - CIFiltersを使用したCIImage飽和、それは可能ですか?
CIImageオブジェクトを使用して、彩度の値を取得しようとしています。しかし、少なくともOS Xで利用可能なCIFilterを使用して、画像の彩度を取得する方法を見つけることができません。
標準のCIFilterを使用してCIImageの彩度を取得することは可能ですか?
cocoa - CIFilter の出力を新しい入力として再帰的に使用する方法は?
カメラ信号で画像処理を行う独自の CIFilter カーネルを作成しました。引数 1 は「inputImage」(現在のカメラ画像)、引数 2 は「backgroundImage」で、最初のカメラ画像で初期化されます。
フィルターは再帰的に機能するはずです。フィルタの結果は、次の反復で新しい「backgroundImage」として使用する必要があります。背景画像といくつかの差異を計算しているため、前のレンダリングの結果が必要です。
残念ながら、次の繰り返しでは CIFilter の出力 CIImage を使用できません。これは、メモリの負荷がどんどん高くなるためです。10 秒の処理の後、RAM の使用量は 1.4GB になります。標準的な方法 (再帰なし) でフィルターを使用すると、メモリ管理に問題はありません。
次の反復でフィルターの出力を入力として再利用するにはどうすればよいですか? 結果の画像で NSLog を実行しました。アリが教えてくれた
数秒後、ログは sth になります。お気に入り
これは、CIImages が目的の操作の「常に」プロトタイプであることを示しています。そして、それらを再帰的に使用すると、新しい「プロトタイプ」への入力として「結果の CIImage 'プロトタイプ'」だけが追加されます。時間が経つにつれて、レンダリングの「ルール」は爆発し、ネストされたプロトタイプの巨大な構造になります。
CIImages を強制的にメモリ内の構造を平坦化する方法はありますか? 再帰的な処理ができれば、QuartzCore のパワーを極限までぶち壊してしまうので嬉しいです。
QuartzComposerでも同じことを試しました。出力を入力に接続すると機能しますが、多くのメモリも必要です。しばらくするとクラッシュします。次に、QC のキューを使用しようとしましたが、すべて正常に機能しました。QC キューに相当する「xcode」とは何ですか? または、カーネルを書き直して、次の反復のために「結果」をメモリに保持するメカニズムはありますか?
iphone - CIImageからのUIImageの取得が正しく機能しない
CIImageからUIImageを取得するのに問題があります。以下のコード行はiOS6で正常に機能します:(出力画像はCIImageです)
また
iOS 5を実行しているデバイスでこれと同じコード行を実行すると、imageViewが空白になります。UIImageのsizeプロパティをログに記録すると、それは正しいのですが、画像が画面に表示されません。
CGImageRefを使用すると(以下に示すように)、両方のデバイスで正常に機能しますが、ヒープショット分析を行うとメモリが大幅に増加します。
UIImage imageWithCIImageが機能しない理由を誰かが知っていますか?UIImageクラスリファレンスによると、iOS5以降で動作するはずです。また、なぜCGImageRefを使用すると、このような大量のヒープが増加するのでしょうか。
ありがとうございました
ios - iOS 顔検出器の向きと CIImage の向きの設定
EDITは、フロントカメラの画像に役立つこのコードを見つけましたhttp://blog.logichigh.com/2008/06/05/uiimage-fix/
他の人が同様の問題を抱えていて、私を助けてくれることを願っています. まだ解決策を見つけていません。(少し長く見えるかもしれませんが、ヘルパー コードの束にすぎません)
カメラから取得した画像 (前面と背面) とギャラリーからの画像に iOS 顔検出器を使用しています (UIImagePicker
カメラによる画像キャプチャとギャラリーからの画像選択の両方に avfoundation を使用していません)。 squarecam のデモのように写真を撮る)
私は検出のための座標を本当に台無しにしているので(もしあれば)、顔の境界を取得するための短いデバッグメソッドと、それらの上に正方形を描くユーティリティを書きました。検出器がどの方向を向いているかを確認したかったのです。仕事をしていました:
[1]
たくさんの異なる写真を試した後、顔検出器の向きがカメラ画像のプロパティと一致していないことに気付きました。uiimage の向きが 3 (imageOrienation のクエリ) である正面向きのカメラからたくさんの写真を撮りましたが、顔検出器はその設定の顔を見つけられませんでした。すべての exif の可能性を調べたところ、顔検出器は最終的に顔を検出していましたが、向きはすべて一緒でした。
![1]: http://i.stack.imgur.com/D7bkZ.jpg
どうすればこれを解決できますか? 私のコードに間違いはありますか?
私が抱えていた別の問題 (ただし、顔検出器と密接に関連している) は、顔検出器が顔を拾うときに、「間違った」向き (主に正面向きのカメラで発生します) の場合、UIImage
最初に使用されたものは uiiimageview に正しく表示されますが、正方形のオーバーレイを描画します (アプリでopencv を使用しているUIImage
ため、opencv でオーバーレイを描画するために cvmat に変換することにしました) 画像全体が 90 度回転します (UIImage
最初に表示された i ではなく、cvmat 画像のみ)
ここで考えられる理由は、顔検出器が、UIimage から opencv mat への変換が使用しているバッファ (コンテキスト?) をいじっているということです。これらのバッファを分離するにはどうすればよいですか?
uiimage を cvmat に変換するコードは (UIImage
誰かが作成した「有名な」カテゴリから):
ios - ALAssetRepresentation の XMP メタデータを解釈する
ユーザーが iOS の組み込み Photos.appで写真に何らかの変更 (切り抜き、赤目除去など) を加えた場合、その変更はfullResolutionImage
、対応する によって返される に適用されませんALAssetRepresentation
。
ただし、変更はthumbnail
および によってfullScreenImage
返される に適用されALAssetRepresentation
ます。さらに、適用された変更に関する情報はALAssetRepresentation
、キーを介して のメタデータ ディクショナリで見つけることができます@"AdjustmentXMP"
。
fullResolutionImage
一貫性を保つために、これらの変更を自分自身に適用したいと思います。iOS6+ CIFilter
ではfilterArrayFromSerializedXMP: inputImageExtent:error:
、この XMP メタデータを の配列に変換できることがわかりましたCIFilter
。
ただし、これは一部のフィルター (クロッピング、自動強調) でのみ機能し、赤目除去などの他のフィルターでは機能しません。このような場合、 にはCIFilter
目に見える効果はありません。したがって、私の質問:
- 赤目除去を作成する方法を知っている人はい
CIFilter
ますか? (Photos.app と一貫性のある方法で。キーを使用したフィルターkCIImageAutoAdjustRedEye
は十分ではありません。たとえば、目の位置のパラメーターを取得しません。) - iOS 5 でこれらのフィルタを生成して適用する可能性はありますか?
c# - MonoTouch CIImageからUIImageを作成すると、無効な引数/不正なセレクターが発生します
ポップオーバーを表示するときに、ぼやけた背景を作成しようとしています。ほとんど機能するようになりました。
私はC#に翻訳したObjectiveCを見つけました。
問題はこの行にあります
それが私が間違っていることだといいのですが