Tôi đang chụp ảnh màn hình của màn hình bằng rô-bốt và sau đó tìm kiếm các hình ảnh nhỏ hơn trong các ảnh chụp màn hình đó. Điều này hoạt động trên Windows nhưng không phải OS X do hiệu chỉnh gamma. Giải pháp tốt nhất tôi có thể đưa ra là chỉ đơn giản là phù hợp với màu sắc tương tự thay vì kết hợp màu sắc chính xác.Cách đối sánh các màu tương tự trong Java bằng cách sử dụng getRGB
Nỗi sợ của tôi là phù hợp với màu tương tự sẽ có nghĩa là vượt quá getRGB do đó sẽ làm chậm chương trình của tôi (vì nó chụp nhiều ảnh chụp màn hình và so sánh chúng với hình ảnh nhỏ hơn để tìm kiếm kết quả rất nhanh).
Câu hỏi của tôi là, cho phép nói tôi đã BufferedImage Ảnh chụp màn hình và BufferedImage smallImage, làm thế nào tôi sẽ đi về việc xác định nếu Screenshot.getRGB (1,1) và smallImage.getRGB (1,1) là tương tự màu sắc?
bạn hỏi trong một chú thích về một cách nhanh hơn để có được giá trị pixel hơn * getRGB * ... * getRGB * có thể thực sự được khủng khiếp chậm: trên một số phiên bản OS X, nó có thể lên đến hai đơn đặt hàng độ lớn (yup, một trăm lần chậm hơn [!], được đo trên OS X 10.4) chậm hơn so với trực tiếp nhận được các giá trị pixel từ cơ bản * int [] *. Xem câu trả lời của tôi (được chấp nhận) ở đây về cách nhanh hơn để trích xuất một biểu đồ từ một hình ảnh: http://stackoverflow.com/questions/8218072/faster-way-to-extract-histogram-from-an-image/8218570#8218570 Một kỹ thuật tương tự có thể được áp dụng trong trường hợp của bạn để cả hai nhanh hơn và tránh hiệu chỉnh gamma. – TacticalCoder