Tôi thấy không gian màu HSV được sử dụng ở mọi nơi: để theo dõi, phát hiện con người, v.v ... Tôi đang tự hỏi, tại sao? Điều gì về không gian màu này làm cho nó tốt hơn so với sử dụng RGB?
Tôi thấy không gian màu HSV được sử dụng ở mọi nơi: để theo dõi, phát hiện con người, v.v ... Tôi đang tự hỏi, tại sao? Điều gì về không gian màu này làm cho nó tốt hơn so với sử dụng RGB?
Câu trả lời:
Câu trả lời đơn giản là không giống như RGB , HSV tách biệt độ sáng , hoặc cường độ hình ảnh, từ sắc độ hoặc thông tin màu sắc. Điều này rất hữu ích trong nhiều ứng dụng. Ví dụ, nếu bạn muốn thực hiện cân bằng biểu đồ của hình ảnh màu, có lẽ bạn chỉ muốn làm điều đó trên thành phần cường độ và để các thành phần màu một mình. Nếu không bạn sẽ có được màu sắc rất lạ.
Trong thị giác máy tính, bạn thường muốn tách các thành phần màu khỏi cường độ vì nhiều lý do, chẳng hạn như độ mạnh để thay đổi ánh sáng hoặc loại bỏ bóng.
Tuy nhiên, lưu ý rằng HSV là một trong nhiều không gian màu tách màu khỏi cường độ (Xem YCbCr, Lab, v.v.). HSV thường được sử dụng đơn giản vì mã để chuyển đổi giữa RGB và HSV có sẵn rộng rãi và cũng có thể dễ dàng thực hiện. Ví dụ: Hộp công cụ xử lý ảnh cho MATLAB bao gồm các hàm rgb2hsv
và hsv2rgb
.
Thông tin màu sắc thường ồn hơn nhiều so với thông tin HSV.
Để tôi cho bạn một ví dụ: Tôi và một số người bạn đã tham gia vào một dự án liên quan đến việc nhận biết các biển báo giao thông trong các video cảnh thực (tiếng ồn, bóng tối và đôi khi hiện diện tắc). Đó là một phần của một dự án lớn hơn, vì vậy cho phép chúng tôi có thời gian để thử các cách tiếp cận khác nhau cho vấn đề cụ thể này (và sử dụng lại các phương pháp cũ hơn). Bản thân tôi đã không thử cách tiếp cận dựa trên màu sắc, nhưng tôi nhớ một thông tin thú vị: _ Thành phần RGB chiếm ưu thế trong dấu hiệu STOP thường không có màu đỏ! (chủ yếu là do bóng tối)
Bạn thường có thể nhận được thông tin tốt hơn từ không gian màu HSV . Hãy để tôi thử và đưa ra một ví dụ kinh nghiệm cá nhân một lần nữa: Hãy thử tưởng tượng bạn có một hình ảnh của một mặt phẳng một màu với một bóng trên đó. Trong không gian màu RGB, phần bóng rất có thể sẽ có các đặc điểm rất khác so với phần không có bóng. Trong không gian màu HSV, thành phần màu của cả hai bản vá có nhiều khả năng giống nhau: bóng sẽ ảnh hưởng chủ yếu đến giá trị , hoặc có thể là thành phần bão hòa , trong khi màu sắc , biểu thị "màu" chính (không có độ sáng và độ pha loãng của màu trắng / đen) không nên thay đổi quá nhiều.
Nếu giải thích này không có vẻ trực quan với bạn, tôi đề nghị:
hãy thử và xem lý do tại sao các loại biểu diễn màu này được phát triển: nó luôn luôn theo một cách nào đó, dựa trên một số quan điểm về sự giải thích của con người về màu sắc
ví dụ như trẻ em không thực sự thích cao màu == có giá trị đối tượng, họ thích cao satuated đối tượng, đối tượng, trong đó màu sắc là mãnh liệt và không pha loãng
sau khi bạn có được điều này và phát triển một số trực giác, bạn nên chơi với hình ảnh: thử phân tách các hình ảnh khác nhau trong các thành phần RGB và HSV của chúng
Mục tiêu của bạn sẽ là nhìn và hiểu sự khác biệt trong các phân tách này đối với các hình ảnh có chứa bóng, chiếu sáng mạnh, phản xạ ánh sáng.
nếu bạn có một loại hình ảnh cụ thể mà bạn muốn chơi, hãy thử phân tách chúng: ai biết được, có lẽ RGB thực sự phù hợp với nhu cầu của bạn hơn HSV :)
Chỉ sử dụng thành phần Hue làm cho thuật toán ít nhạy hơn (nếu không bất biến) đối với các biến thể chiếu sáng.
Một tùy chọn phổ biến khác là không gian màu LAB, trong đó các kênh AB đại diện cho khoảng cách màu và euclide trong không gian AB phù hợp hơn với nhận thức của con người về màu sắc. Một lần nữa, bỏ qua kênh L (Luminance) làm cho thuật toán mạnh mẽ hơn đối với sự khác biệt về ánh sáng.
Câu trả lời tốt nhất tôi có thể hình dung là: RGB phải thực hiện với "chi tiết triển khai" liên quan đến cách RGB hiển thị màu sắc và HSV phải thực hiện với các thành phần "màu thực tế". Một cách khác để nói điều này sẽ là RGB là cách máy tính xử lý màu sắc và HSV cố gắng nắm bắt các thành phần của cách con người chúng ta cảm nhận màu sắc.
Tôi sẽ giải thích:
Màu sắc là một nhận thức dựa trên sóng điện từ. Tính chất tự nhiên của các sóng này, ví dụ cường độ và tần số. Nếu chúng ta quét tần số của một luồng sáng từ hồng ngoại đến cực tím, chúng ta sẽ cảm nhận được một cách trực quan một sự biến đổi màu sắc dọc theo các màu cầu vồng. Màu sắc cầu vồng có thể được coi là "màu thuần khiết" vì chúng được biểu thị bằng sóng đơn tần.
Bây giờ mắt người chỉ có thể đáp ứng, hoặc "cộng hưởng" với ba tần số ánh sáng chính, không đáng ngạc nhiên là đỏ, lục và lam. Thực tế là phản ứng này là phi tuyến tính, do đó võng mạc có thể phân biệt một màu thuần nhất định (và ngầm định là "tần số" của nó) bằng phản ứng kết hợp của ba thành phần màu .
Không gian màu RGB tồn tại như vậy chỉ để bắt chước hoạt động bên trong võng mạc của chúng ta, do đó, phần lớn màu sắc có thể được biểu thị trên màn hình máy tính bằng phương tiện thuận tiện (từ quan điểm của máy tính) màu 24 bit mỗi pixel mã hóa. Không gian màu RGB không có mối quan hệ nội tại với các thuộc tính màu tự nhiên, cũng không liên quan đến sự giải thích của con người về màu sắc.
Ví dụ, bất kỳ hoạt động đối xứng nào được thực hiện theo kênh trong không gian RGB (ví dụ: tạo độ dốc màu) cho kết quả rất thô hoặc thậm chí là "sai". Đó là lý do tại sao nên tạo các bản đồ màu bằng cách chuyển đổi các điểm dừng màu từ RGB sang các không gian màu khác (HLS, Lab, v.v.), thực hiện các phép nội suy, sau đó chuyển các giá trị nội suy trở lại RGB.
Hi vọng điêu nay co ich!
HSV là viết tắt của Hue-Saturation-Value. Nó thực sự là một loại biểu diễn mặt phẳng màu (như RGB, YCbCr, v.v.).
Đây là định dạng biểu diễn màu độc lập của thiết bị: Biểu diễn màu HSV rất hữu ích để phát hiện các loại màu cụ thể, ví dụ: màu da, màu lửa, v.v.
Matlab
Chức năng chuyển đổi hình ảnh RGB sang mặt phẳng HSV là rgb2hsv('/inputimage_name')
.
Tôi sẽ cho bạn một ví dụ để hiểu. Giống như bàn tay của chúng ta có nhiều phần lòng bàn tay, lòng bàn tay trở lại, và dưới đó. chúng ta có thể thấy sự thay đổi màu sắc khác nhau trong các khu vực này, nhưng màu sắc cho tất cả các khu vực này không khác nhau nhiều, vì vậy giá trị màu sắc có thể hữu ích trong phân đoạn tay.
Không có gì tôi biết về điều đó đặc biệt tốt hơn với HSV so với YUV hoặc LAB sẽ giúp việc trích xuất tính năng và chiếu sáng hoặc hình ảnh hóa trở nên tốt hơn. Tôi đoán HSV là cái được sử dụng phổ biến hơn vì quy ước và tính liên tục: việc so sánh kết quả và giao tiếp với nhau sẽ dễ dàng hơn nếu cả hai bạn sử dụng cùng một không gian màu.
Như đã nói, HSV (trái ngược với RGB) được sử dụng trong thị giác máy tính vì 2 lý do tôi biết:
Như những người khác đã đề cập, có lợi khi tách luma khỏi sắc độ. Luma thay đổi rất nhiều trong cảnh dựa trên lượng ánh sáng rơi vào vật thể. Mặt khác, Chroma tương quan tốt hơn với các thuộc tính bên trong của đối tượng và đối với các hình ảnh cân bằng trắng đúng là ít nhiều bất biến.
Tuy nhiên, tôi muốn thêm rằng HSV, HSL, hoặc trên thực tế, bất kỳ không gian màu nào có tham số cực của mặt phẳng sắc độ, là những lựa chọn không tốt cho mục đích đó. Đó là bởi vì họ giới thiệu một điểm kỳ dị trên dòng màu xám (màu nào là màu xám?), Khiến chúng rất nhạy cảm với nhiễu và cân bằng trắng. Ngoài ra, so sánh giữa hai màu trong một hệ tọa độ cực không đơn giản như trước. Cũng lưu ý rằng cả giá trị trong HSV và độ sáng trong HSL đều không tương ứng với độ sáng cảm nhận của con người hoặc bất kỳ thước đo vật lý nào khác của năng lượng.
Có rất nhiều không gian màu tuyến tính tạo ra sự phân tách luma-chroma giống nhau trong khi bảo tồn tuyến tính (YCbCr, YUV) hoặc mô hình thị giác của con người đúng cách (LUV, LAB). Với những màu bạn có thể so sánh hai màu bằng cách sử dụng chỉ tiêu Euclide L2 về màu sắc của chúng, dẫn đến một thuật toán tổng thể mạnh mẽ hơn.
Tại sao HSV / HSL được sử dụng thường xuyên như vậy sau đó? Khó để đưa ra một câu trả lời khách quan. Theo kinh nghiệm của tôi, chủ yếu là do sự thiếu hiểu biết và sự sẵn có của các thói quen chuyển đổi RGB-> HSV. Phải làm việc với mã mà các tác giả không hiểu về hiệu chỉnh gamma, chứ đừng nói đến các không gian màu khác nhau. Nhìn thấy mã đã chuyển đổi RGB sang HSV sau đó phân đoạn hình ảnh dựa trên màu sắc, không quan tâm đến thực tế rằng đó là một số lượng mô-đun. Tôi nghĩ rằng chúng ta có thể đồng ý rằng những quyết định không có ý thức được ủng hộ bởi bất kỳ lý do nào.