2012-04-05 24 views
8

Tôi đã mã html sau render trên trình duyệt của khách hàng của tôi:Loại bỏ mắt đỏ từ một hình ảnh trên các mặt hàng sử dụng Jquery

<div id="Div"> 
    <img src="myImage.jpg" id="myImage"/> 
</div> 

hình ảnh cụ thể này được tải lên bởi người sử dụng và sau đó hiển thị ở đây. Tôi cần cho phép người dùng của mình xóa bất kỳ mắt đỏ nào khỏi hình ảnh này. Tôi muốn làm điều đó mà không có bất kỳ postback (Tôi đang sử dụng CodeIgniter ở phía sau). Có bất kỳ thư viện có sẵn cho điều này trong JQuery (hoặc Javascript đơn giản)? Nếu không phải điều gì có thể là một cách tiếp cận tốt?

+5

Đó là một điều rất nhỏ nhặt mà bạn đang cố gắng làm. – ThiefMaster

+3

+1 cho tham vọng. : D – marue

+0

: D. Vậy tôi có nên để PHP xử lý và chỉ hiển thị kết quả không? – unni

Trả lời

3

Có rất nhiều thứ mà đi vào trong việc loại bỏ mắt đỏ Detection

A. Mắt

B. Red Eye Region Mapping

C. Điền Màu

D. Fuzz

E. Opaque

Lời khuyên của tôi

Nếu không phải là một công việc cho Jquery và thậm chí PHP sẽ không loại bỏ mắt đỏ hiệu quả

có khả năng Giải pháp

  1. Nhận một lựa chọn khu vực script jquery nơi người dùng có thể chọn màu đỏ của họ mắt họ tự (Với điều này bạn sẽ có thể nhận được khu vực (X1, Y1, X2, Y2, Chiều cao, Chiều rộng) ví dụ http://odyniec.net/projects/imgareaselect/

  2. Có một Bộ chọn màu đơn giản, nơi chúng có thể chọn màu thay thế ??? Mặc định có thể có màu đen

  3. Gửi yêu cầu đến imagemagick sử dụng exec trong PHP cho việc loại bỏ mắt đỏ

  4. Bạn có thể không ra hình ảnh của bạn ...

EDIT 1

Tôi đã có thể giúp bạn sử dụng công cụ dòng lệnh sẵn sàng cho JOB

này 10

http://www.fmwconcepts.com/imagemagick/index.php http://www.fmwconcepts.com/imagemagick/redeye/index.php

Basic Concept

A. Tạo một bản sao Desaturate của hình ảnh đầu vào

B. Thực hiện mờ lũ lụt để tạo hình ảnh mặt nạ

C. Soạn hình gốc với hình ảnh bão hòa bằng hình ảnh mặt nạ

D.Áp dụng một hoạt động gần như hình thái để điền vào lỗ hình trong mặt nạ và sau đó tạo ra một hoạt động khác biệt để tạo ra một mặt nạ mới chỉ là lỗ

E. Áp dụng mặt nạ mới để kết hợp kết quả trước đó với độ sáng đầy đủ, zero phiên bản độ bão hòa của ảnh gốc

Process mẫu

convert -quiet -regard-warnings "$infile" +repage "$tmpA1" 
convert $tmpA1 -modulate $light,$sat,100 $tmpA2 
proc="" 
for ((i=0; i<np; i++)); do 
proc="$proc matte ${pairArray[i]} floodfill" 
done 
convert $tmpA5 -fuzz $fuzz% -fill none -draw "$proc" \ 
-fill "rgba(255,255,255,1)" +opaque "rgba(0,0,0,0)" \ 
-fill "rgba(0,0,0,1)" -opaque "rgba(0,0,0,0)" \ 
-alpha off -negate $tmpA3 
if [ "$dilate" = 0 ]; then 
dilation="" 
else 
dilation="-morphology dilate disk:$dilate" 
fi 
convert $tmpA1 $tmpA2 $tmpA3 -compose over -composite $tmpA2 
convert $tmpA3 \(+clone -morphology close disk:$rad $dilation \) \ 
-compose difference -composite -auto-level \ 
-negate -threshold 0 -negate $tmpA4 
convert $tmpA2 \($tmpA1 -modulate 100,0,100 \) $tmpA4 \ 
-compose over -composite $outfile 

tôi hy vọng điều này sẽ giúp

Cảm ơn

01.

:)

+0

Cảm ơn rất nhiều cho lời giải thích chi tiết. Điều này thực sự hữu ích. – unni

+0

Bạn được chào đón .... – Baba

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