Làm thế nào để nhận biết màu sắc từ biểu đồ màu?


9

Tôi đang phát triển một ứng dụng tầm nhìn đang sử dụng biểu đồ màu bên dưới và camera để trích xuất màu của từng miếng vá trong biểu đồ. Để làm điều đó, trước tiên tôi phải phát hiện khu vực biểu đồ trong một hình ảnh và khớp khu vực đó với mẫu hiện có chứa các vị trí của các bản vá.

Câu hỏi của tôi: Tôi cần phát hiện khu vực vá màu bằng cách nhận ra bốn góc của biểu đồ. Bạn có thể thấy các góc mà hình chữ nhật nhỏ chèn trong hình bên dưới. Tôi biết một cách để làm điều đó là cho phép người dùng chọn các góc đó bằng cách nhấp vào nó. Nhưng có cách nào để tự động phát hiện bốn góc từ hình ảnh.

nhập mô tả hình ảnh ở đây


Chỉ tò mò, nơi mà người ta có thể có được một biểu đồ tham chiếu màu như vậy?
hotpaw2

@ hotpaw2 Như mọi khi, google. Tìm kiếm cụm từ "mục tiêu it8"
Tae-Sung Shin

Câu trả lời:


4

Bạn có thể nhà dòng hough để phát hiện khu vực màu sắc

  • Đầu tiên phát hiện tất cả các dòng
  • Các dòng có độ dài dài nhất sẽ là các dòng ngoài cùng
  • Chọn đường ngang trên cùng và làm mẫu khớp với hình vuông.
  • Khi bạn tìm thấy các hình vuông, di chuyển xuống dưới, bạn sẽ đến được các ô vuông khác.
  • Đánh dấu tất cả các điểm mà hình vuông được tìm thấy
  • Bây giờ bạn có một khu vực kèm theo cho biểu đồ màu.

2

Mỗi mảng 2D của một thành phần màu (RGB, et.al.) có độ tương phản khá cao và đặc biệt. Vì vậy, tôi có thể thử sử dụng FFT 2D phức tạp của từng thành phần màu để xác định tỷ lệ và độ lệch của ảnh ảnh so với ảnh tham chiếu. Sau đó sử dụng chúng để điều chỉnh tọa độ đo / đã biết của các góc và / hoặc miếng vá trong ảnh tham chiếu để tạo tọa độ trong ảnh.

Trước tiên, bạn có thể phải đo một số tọa độ trên ảnh tham chiếu bằng trình chỉnh sửa bitmap.


1

Bước đầu tiên - tôi sẽ loại bỏ tất cả sự lộn xộn với màu xám và văn bản. Bắt đầu từ cả bốn phía tôi sẽ dừng lại cho đến khi phần lớn các pixel có màu "xám" được biết đến duy nhất.

Điều này sẽ khiến bạn chỉ có bảng kiểm tra bao gồm các màu khác nhau. Bạn mong đợi khoảng 22x12 - khoảng 264 màu.

Một phương pháp đơn giản nhất sẽ là áp dụng thuật toán pal bụng hóa đơn giản hơn. Nếu bạn phải dịch cái này trong ảnh GIF - nó sẽ áp dụng lượng tử hóa màu với mỗi cụm màu được biểu thị là màu trung tâm.

Điều này sẽ đặc biệt dễ dàng trong trường hợp của bạn bởi vì nguồn này đã là một khẩu vị nào đó và bạn có thể đoán đúng để bắt đầu.

Kiểm tra này:

NeuQuant: http://members.ozemail.com.au/~dekker/NEUQUANT.HTML

Định lượng màu Octree: http://www.cubic.org/docs/octree.htm . Xem cái này cũng được.

Đây chỉ là một số tài liệu tham khảo; nhưng bạn sẽ thấy sẵn sàng sử dụng mã trong hầu hết các thư viện sử dụng các định dạng hình ảnh như vậy. (BMP, PNG và GIF hỗ trợ các đại diện như vậy). Ngoài ra hãy kiểm tra libpnglibjpeg để biết một số triển khai nhanh.


0

Tại sao không tìm kiếm các ranh giới của biểu đồ, thay vì các góc? Bạn có thể thử sử dụng trình phát hiện cạnh và sau đó tìm các đường thẳng bằng cách sử dụng Biến đổi Hough.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.