2009-09-14 38 views
8

Thuật toán tốt nhất (kết quả, không hiệu suất) để tìm các màu chủ đạo từ một hình ảnh là gì. Thuật toán phải loại bỏ nền của hình ảnh.Nhận các màu chủ đạo từ việc loại bỏ hình ảnh nền

Tôi biết tôi có thể xây dựng một mảng màu sắc và số lượng chúng xuất hiện trong hình ảnh, nhưng tôi cần một cách để xác định nền là gì và nền trước là gì, và chỉ ghi nhớ thứ hai (tiền cảnh) trong khi đọc các màu chủ đạo.

Vấn đề là rất khó khăn nhất là đối với các hình nền hoặc backrounds với các mẫu (không phải đơn giản)

Trả lời

1

Theo như kiến ​​thức của tôi về các thuật toán xử lý hình ảnh kéo dài, không có cách nào đó để có được những "tiền cảnh"; chỉ có thể nhận được đường viền giữa các đối tượng. Có thể bạn sẽ phải làm gì với phương pháp tính trung bình hoặc phương pháp tính số lượng được đề xuất. Trong đó, bạn sẽ muốn cho màu sắc với độ bão hòa cao hơn "điểm số" cao hơn vì chúng nổi bật hơn nhiều.

+0

Nếu nền trước sắc nét, và nền hơi mất nét, thì có đủ thông tin trong hình ảnh thô để xác định nền trước từ nền sau. Có nói rằng, tôi không chắc chắn chính xác làm thế nào để làm điều đó :) –

+0

Nó có thể được thực hiện, nhưng nó đòi hỏi hai hoặc nhiều hơn hai hình lập thể hoặc một chiều sâu. – aviraldg

8

Cô lập foreground từ nền nằm ngoài phạm vi của câu trả lời đặc biệt này, nhưng ...

tôi đã tìm thấy rằng việc áp dụng một bộ lọc pixelation đến một hình ảnh sẽ vẽ ra một bộ thực sự tốt của 'trung bình' màu sắc.

Trước

http://img12.imageshack.us/img12/825/pixelate1a.jpg

Sau

http://img12.imageshack.us/img12/8127/pixelate2.jpg

đôi khi tôi sử dụng phương pháp này để lấy được một pallete màu sắc với một tâm trạng cụ thể. Lần đầu tiên tôi tìm thấy một bức ảnh với các tông chung tôi đang theo sau, pixelate và sau đó lấy mẫu từ hình ảnh kết quả.

(Nhờ this page cho những hình ảnh tìm thấy qua Google Image Search)

+0

Tôi biết kỹ thuật này nhưng đây không phải là câu trả lời cho câu hỏi của tôi. Phương pháp đơn giản nhất cho phương pháp trên là: @product = Product.find (params [: id]) @image = Magick :: ImageList.new (@ product.photo.path) @image = @image. quantize (quantisation_level) – astropanic

+0

@Drew: pixelation như thế này về cơ bản chỉ là trung bình pixel vào khối anyway, do đó, nó không thực sự trả lời câu hỏi này. – MusiGenesis

+0

@MusiGenesis - Tôi đã chỉ ra rằng nó sẽ không tìm thấy nền trước từ nền (câu đầu tiên của câu trả lời của tôi), tuy nhiên nó là một phương tiện dễ dàng và hữu ích của việc tìm kiếm các màu chủ đạo từ một hình ảnh (câu đầu tiên của câu hỏi .) –

4

Tôi có thể nói vấn đề này là gần gũi hơn với "bất khả thi" hơn là "rất khó khăn". Cách tiếp cận duy nhất cho nó mà tôi có thể nghĩ đến là giả định rằng nền của một hình ảnh có khả năng bao gồm các khối rắn có màu tương tự, trong khi nền trước có thể bao gồm các khối nhỏ hơn các màu không giống nhau.

Nếu giả định này nói chung là đúng, thì bạn có thể quét toàn bộ hình ảnh và điểm ảnh theo mức độ tương tự hoặc không giống với pixel lân cận. Nói cách khác, nếu hàng xóm của một pixel (trong phạm vi bán kính tùy ý nào đó, có lẽ) đều là các màu tương tự, bạn sẽ không kết hợp điểm ảnh đó vào ước tính tổng thể. Nếu những người hàng xóm có xu hướng có màu sắc rất khác nhau, bạn sẽ cân nặng điểm ảnh rất nhiều, có lẽ là tỷ lệ với mức độ khác biệt.

Điều này có thể không hoạt động hoàn hảo, nhưng chắc chắn ít nhất cũng có xu hướng loại trừ các dải màu tương tự lớn.

6

The colour summarizer là một điểm khá ngọt ngào để biết về chủ đề này, chưa kể đến dường như miễn phí API Web XML của họ rằng sẽ sản xuất thống kê màu sắc mô tả cho một hình ảnh lựa chọn của bạn, báo cáo lại sau đây được định dạng với swatches trong HTML hay XML ...

  • màu sắc trung bình, độ bão hòa và giá trị trong hình ảnh của tôi là gì?
  • màu RGB đại diện nhất cho hình ảnh là gì?
  • biểu đồ RGB và HSV trông như thế nào?
  • Mô tả màu sắc có thể đọc được của con người (ví dụ: màu xanh đậm)?

Mục đích của tiện ích này là để tạo ra siêu dữ liệu tóm tắt đặc điểm màu sắc một hình ảnh của để đưa vào một cơ sở dữ liệu hình ảnh, như Flickr. Cụ thể, công cụ này đang được sử dụng để tạo ra một siêu dữ liệu cho nhóm Trường màu của Flickr.

enter image description here

Theo kinh nghiệm của tôi mặc dù .. công cụ này vẫn còn bỏ lỡ "con người có thể đọc được"/rõ ràng "chính" màu, rất nhiều thời gian. Máy ngớ ngẩn!

Các vấn đề liên quan