이미지가 있습니다! 픽셀 감지를 한 지 오래 됐었습니다. 어쨌든 픽셀을 배열로 변환 한 다음 픽셀이 행 끝에 도달하여 다음 픽셀로 이동하는 것을 확인하기 위해 이미지의 너비를 찾아야한다는 것을 기억합니다. 그리고 아아, 많은 복잡한 재료 haha! 어쨌든 이제 더 이상이 작업을 수행 할 방법이 없지만 왼쪽 가장 어두운 픽셀의 xy 이미지를 "image1"좌표로 감지해야합니다. 적절한 시작 위치는 무엇입니까?이미지에서 가장 검은 색 픽셀 감지 - objective-c iOS
0
A
답변
2
서점으로 이동하여 Erica Sadun의 "iOS Developer 's Cookbook"이라는 책을 찾으십시오. 378 페이지로 이동하십시오. 거기에는 픽셀 감지 방법이 있습니다. 이 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 계정에 추가하기 때문에이 방법이 효과적입니다. 기본적으로 세 가지 색상 (빨강, 녹색 및 파랑)에 대한 방법을 사용하고 각 픽셀에 대한 합계를 찾습니다. 적색, 녹색, 청색 중 가장 낮은 값을 갖는 픽셀이 가장 검정색입니다.
관련 문제
- 1. 이미지의 검은 색 픽셀
- 2. matlab는 검은 색 이미지에서 흰색 영역을 둘러싸습니다.
- 3. 이미지에서 가장 가까운 비 검정 픽셀 찾기
- 4. 이미지에서 흰색과 검은 색 텍스트의 이진화
- 5. iOS 시뮬레이터 검은 색 배경
- 6. OpenCV에서 검은 색/회색 요소 감지
- 7. 캔버스에있는 이미지에서 픽셀 정확 히트 감지?
- 8. 이미지에서 교차 감지
- 9. iOS 5 검은 색 투명 UIAlertView
- 10. IOS 4.0에서 UITableViewGroupedStyle에서 검은 색 가장자리 제거하기
- 11. IOS : UIDatePicker가 검은 색 배경으로 잘못 렌더링됩니다.
- 12. iOS 5 세그 후 검은 색 화면
- 13. IOS 모달보기 컨트롤러가 검은 색 화면을 표시합니다.
- 14. pushViewController가 검은 색 화면이됩니다.
- 15. 회전 된 투명 이미지에서 원하지 않는 검은 색 배경 표시
- 16. python : reportlab, 이미지에서 검은 색 테두리를 제거하는 방법
- 17. 이미지에서 검은 부분을 제거하는 방법?
- 18. 검은 색 줄이 6
- 19. OpenGL : 텍스처의 오른쪽 상단에 작은 검은 색 픽셀
- 20. 이미지에서 색 구성표 생성하기
- 21. 검은 색 하위보기가 피커보기
- 22. 검은 색 배경이있는 NetBeans
- 23. LWJGL - 검은 색 화면
- 24. MapView 검은 색 화면
- 25. 검은 색 배경이있는 UITableViewCell
- 26. 투명한 PNG가는 검은 색
- 27. MapView와 검은 색 화면
- 28. 작은 검은 색 "?" 공백?
- 29. CorePlot 검은 색 가장자리
- 30. 맞춤법 검사 (검은 색)
아! 행운! Erica가 책 "iPhone Developer 's Cookbook"을 가지고 있지만 "iOS Developer 's Cookbook"이 아닙니다. Ahhh! :(하하! 픽셀 감지 방식의 일부 이름을 공유하는 마음이 있습니까?) –
대단합니다!하지만 가장 검정색 값을 어떻게 감지합니까? 절대적인 검정색 픽셀이 없으면 어떻게하면 다음을 감지 할 수 있습니까? 가장 가까운 색을 검정색으로합니다 ... –
저에게 맞는 다른 방법을 찾았습니다 ...하지만이 질문에 답하는 것은 아닙니다! –