2011-11-12 33 views
7

hiện đang bắt tay vào một dự án liên quan đến máy ảnh android yêu cầu tôi phát hiện các màu nhất định trong khi xem trước trực tiếp hoặc sau khi chụp ảnh.Phát hiện màu Sử dụng Máy ảnh Android

Tôi đã quản lý thành công thiết lập máy ảnh với bản xem trước trực tiếp và tất cả, nhưng hiện tôi đang bị kẹt khi phát hiện màu. Ví dụ: tôi muốn phát hiện màu xanh lục trong quá trình xem trước trực tiếp của máy ảnh và gửi phản hồi cho người dùng. Nó không nhất thiết phải được thực hiện trong khi xem trước trực tiếp, như tôi đã nghĩ rằng chụp một bức ảnh, sau đó thực hiện việc phát hiện màu sắc có thể được thực hiện một cách dễ dàng hơn.

Tôi là người mới hoàn thành về lập trình Android, vì vậy bất kỳ hướng nào về cách viết mã thuật toán phát hiện màu sẽ được đánh giá rất nhiều!

Trả lời

1

Nếu bạn muốn đi cho phương pháp đơn giản sau đó nhận được hình ảnh bitmap từ máy ảnh và sử dụng bitmap.getpixel(int x,int y) để có được màu sắc và so sánh các điểm ảnh với màu sắc mà bạn muốn

0

"Màu Grab" là ứng dụng Android mà những gì bạn cần. Ứng dụng có thuật toán nhận dạng/nhận dạng màu sắc tốt nhất và nó hoạt động hoàn hảo.Bạn có thể xem cách hoạt động của nó.

Color Grab on Google Play

0

Bạn nên cố gắng này trong đó x và y là vị trí điểm ảnh

int frameHeight = camera.getParameters().getPreviewSize().height; 
int frameWidth = camera.getParameters().getPreviewSize().width; 
int rgb[] = new int[frameWidth * frameHeight]; 
decodeYUV420SP(rgb, data, frameWidth, frameHeight); 
Bitmap bmp = Bitmap.createBitmap(rgb, frameWidth, frameHeight, Config.ARGB_8888); 
int pixel = bmp.getPixel(x,y); 
int redValue = Color.red(pixel); 
int blueValue = Color.blue(pixel); 
int greenValue = Color.green(pixel); 
int thiscolor = Color.rgb(redValue, greenValue, blueValue); 
Các vấn đề liên quan