イメージがあります!私はピクセル検出を行ってからずっとずっと、ピクセルを配列に何らかの形に変換してから、ピクセルが行の最後に到達して次のピクセルに移動するときに画像の幅を見つける必要があることを覚えていますああ、たくさんの複雑なものがあります。とにかく私は今これをやり直す方法がありませんが、一番暗いピクセルのx &の "image1"というイメージのy座標を検出する必要があります。イメージ上のほとんどの黒ピクセルを検出する - objective-c iOS
0
A
答えて
2
あなたの本屋に行って、Erica Sadunの "iOS Developer's Cookbook"という本を見つけてください。 378-ishページに移動して、そこでピクセルを検出する方法があります。この配列のRGB値を見ると、forループを実行してR、G、Bの値の合計が最小(0〜255)のピクセルをソートして見つけることができます。これは黒に最も近いピクセルを与えます。 必要に応じてコードを投稿することもできます。しかし、この本は方法と説明を与える最高の情報源です。
これは変更されたものです。メソッド名は変わりません。私が変えたのは基本的にイメージピッカーから来たイメージでした。
-(UInt8 *) createBitmap{
if (!self.imageCaptured) {
NSLog(@"Error: There has not been an image captured.");
return nil;
}
//create bitmap for the image
UIImage *myImage = self.imageCaptured;//image name for test pic
CGContextRef context = CreateARGBBitmapContext(myImage.size);
if(context == NULL) return NULL;
CGRect rect = CGRectMake(0.0f/*start width*/, 0.0f/*start*/, myImage.size.width /*width bound*/, myImage.size.height /*height bound*/); //original
// CGRect rect = CGRectMake(myImage.size.width/2.0 - 25.0 /*start width*/, myImage.size.height/2.0 - 25.0 /*start*/, myImage.size.width/2.0 + 24.0 /*width bound*/, myImage.size.height/2.0 + 24.0 /*height bound*/); //test rectangle
CGContextDrawImage(context, rect, myImage.CGImage);
UInt8 *data = CGBitmapContextGetData(context);
CGContextRelease(context);
return data;
}
CGContextRef CreateARGBBitmapContext (CGSize size){
//Create new color space
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
if (colorSpace == NULL) {
fprintf(stderr, "Error allocating color space\n");
return NULL;
}
//Allocate memory for bitmap data
void *bitmapData = malloc(size.width*size.height*4);
if(bitmapData == NULL){
fprintf(stderr, "Error: memory not allocated\n");
CGColorSpaceRelease(colorSpace);
return NULL;
}
//Build an 8-bit per channel context
CGContextRef context = CGBitmapContextCreate(bitmapData, size.width, size.height, 8, size.width*4, colorSpace, kCGImageAlphaPremultipliedFirst);
CGColorSpaceRelease(colorSpace);
if (context == NULL) {
fprintf(stderr, "Error: Context not created!");
free(bitmapData);
return NULL;
}
return context;
}
NSUInteger blueOffset(NSUInteger x, NSUInteger y, NSUInteger w){
return y*w*4 + (x*4+3);
}
NSUInteger redOffset(NSUInteger x, NSUInteger y, NSUInteger w){
return y*w*4 + (x*4+1);
}
下、redOffsetの方法、あなたのARGB(アルファ・赤・緑・青)規模でのレッド値を取得します。あなたが見ているARGBのどのチャンネルを変更するには、redOffset関数のx変数に追加された値を0に変更してアルファを見つけて、赤を見つけるために1に、緑を見つけるために2、青を見つけるために3で保持します。これは、上記の方法で作成された配列と、インデックス値のx勘定に加えられた配列を調べるだけで機能します。基本的に、3つの色(赤、緑、青)のメソッドを使用し、各ピクセルの合計を求めます。どのピクセルが赤、緑、および青の最低値をともに持つかが最も黒い。
関連する問題
- 1. イメージの黒いピクセルを検出するiOS
- 2. イメージを別のイメージの黒いピクセルに置きます
- 3. イメージを検出するプロセスは、白黒イメージかカラーイメージですか?
- 4. 文字イメージ内の黒いピクセルを削除するには
- 5. 以上から、ほとんどのアンドロイド
- 6. iOS ObjectiveC Webservice
- 7. UIImageView iOSシミュレータとデバイス上のPNGピクセル化
- 8. Figwheelは私のコードのほとんどの変更を検出しません
- 9. 深度マップ上のオブジェクトをほぼ検出する
- 10. 描画された線がイメージの黒いピクセルと交差するか、または黒いピクセルに接触するかどうかを検出するにはどうすればよいですか?
- 11. Direct3D Mapピクセル黒
- 12. Python PIL - 白黒ピクセルのRGBピクセル値
- 13. matlabで黒のピクセルを白にする
- 14. 背景がほとんど囲まれていることを検出
- 15. ほとんどすべてのiOS SDKデリゲートメソッドはオプションですか?
- 16. iOSシミュレータの上下の黒いバー
- 17. ほとんどのウィンドウの左上にあるアイコン
- 18. opencv C++エッジ検出は、その上端が白で下端が黒であることを検出します。
- 19. iOSクラッシュスタックトレースがほとんど意味をなしません
- 20. ほとんどのサイレントiOSアプリでの音量調整
- 21. イメージ上の2点間のピクセルを計算する
- 22. Mysql、値の検索、ほとんどのと
- 23. ピクセルごとの衝突検出ピンボール
- 24. イメージをビットマップで取得しても黒いピクセルのみを返す
- 25. iOS上のOpenCVオブジェクト検出(HOGDescriptor)
- 26. Objective-c(Cocoa)の画像上の白いピクセルのラインを検出する
- 27. ほとんど空のプランキャッシュ
- 28. イメージ上のオブジェクトを検出する方法
- 29. イメージ上にテキストの存在を検出するアルゴリズム
- 30. アクセスデータベースVB - ほとんどの 'RECENT'レコードのデータベースの検索
ああ!何が幸運!私はEricaの "iPhone Developer's Cookbook"という本を持っていますが、 "iOS Developer's Cookbook"ではありません。 :(ハハ!ピクセル検出方式の名前の一部を共有していますか? –
これは素晴らしいですが、MOSTの黒の値をどのように検出しますか?絶対的な黒のピクセルがない場合、黒に最も近い色ですか? –
私は私のために働いた方法がはるかに異なっています...しかし、これは質問に答えています!質問は承認されました! –