Nhận sự khác biệt giữa hai hình ảnh là hình ảnh trong suốt trong GIMP


21

Tôi có hai hình ảnh ABtương tự nhau ở nhiều vùng.

Tôi muốn tạo một hình ảnh Cđể

B = C on top of A

nơi nào Cnên minh bạch nhất có thể. on top oflà chồng chất lớp bình thường.

Vì vậy, Cmột số loại khác biệt giữa AB. Nếu ABgiống hệt nhau, thì Choàn toàn minh bạch. Nếu ABrất khác nhau, thì chúng Csẽ gần giống nhau B.


Có một câu trả lời tuyệt vời cho câu hỏi này trên Stack Overflow sử dụng ImageMagick: stackoverflow.com/questions/5132749/ Kẻ
AB

Câu trả lời:


23

Bạn có thể sử dụng chế độ lớp "khác biệt" để tạo mặt nạ lớp và áp dụng nó cho B như thế này:

  1. Mở cả hai hình ảnh dưới dạng lớp, A ở dưới cùng, B trên cùng
  2. Trên hộp thoại của lớp, đánh dấu chế độ lớp của B là "sự khác biệt". Bây giờ bạn sẽ thấy hình ảnh chủ yếu là màu đen là những hình ảnh giống nhau, với các khu vực màu đánh dấu các khu vực khác nhau. Tuy nhiên, những màu này sẽ không khớp với màu của B như bạn muốn
  3. Chỉnh sửa-> Sao chép hiển thị, để có bản sao hiệu ứng được tính trên B
  4. Sao chép lớp B, thay đổi chế độ của nó trở lại thành "Bình thường" (hãy gọi lớp này là C)
  5. Trên menu Lớp, thêm mặt nạ lớp vào C (Layer-> Mask-> Add Layer Mask).
  6. Với mặt nạ được chọn, dán nội dung được sao chép ở bước 3 (chỉnh sửa-> dán).
  7. Neo nội dung đã dán trên mặt nạ của lớp (lớp-> Lớp neo)

Bạn đang ở đó - làm cho Lớp A và B trở nên vô hình, và bạn nên rất gần với những gì bạn muốn. Các thao tác tiếp theo trên mặt nạ lớp (Tôi khuyên bạn nên sử dụng Màu sắc-> đường cong) có thể điều chỉnh độ mờ / độ trong của các khu vực trên lớp C.

cập nhật Gần đây tôi đã trả lời một câu hỏi tương tự như vậy trên Stackoverflow, nơi OP muốn thực hiện nhiệm vụ theo chương trình (Sử dụng thư viện hình ảnh Python + Python) - Tôi đã đăng chương trình đầy đủ về câu hỏi đó và nó có thể giúp ích cho bất kỳ ai quan tâm đến câu trả lời này.


On the layer's dialog, mark B's layer mode as "difference". Xin lỗi, cái gì? Tôi đang nhìn vào cửa sổ công cụ Lớp và nếu tôi nhấp chuột phải vào lớp B, tôi sẽ không thấy bất cứ thứ gì trông giống như a layer mode. Gần nhất tôi đã tìm thấy Add Layer Mask, nhưng tôi không nghĩ đó là những gì bạn đang đề cập đến. Sử dụng v2.8.22.
Adrian

với lớp được chọn, chế độ lớp có thể được chọn trong trình đơn thả xuống ở trên cùng của hộp thoại lớp, không phải từ menu chuột phải.
jsbueno

Tôi có một chút nhầm lẫn hoặc rắc rối với bước 6 - dường như dán nội dung vào một lớp mới, ngay cả với "mặt nạ C" được chọn, tạo một lớp thứ tư có tên là "Lựa chọn nổi (Lớp dán)" được bù từ vị trí ban đầu - đó là cách nó nên nhìn?

Đó là một "lựa chọn nổi" cho đến khi bạn "neo" nó đến đích của nó (Ctrl-H). Đảm bảo rằng mặt nạ được kích hoạt khi bạn dán (Ctrl-V) nếu không việc neo có thể đi nơi khác.
xenoid

5

Có một phương pháp đơn giản để làm điều đó:

Mở hình ảnh thành hai lớp, chạy Bộ lọc - Hoạt hình - Tối ưu hóa (Sự khác biệt), bạn sẽ nhận được cùng một hình ảnh kết quả hiện được tạo từ lớp dưới cùng và một lớp khác ở trên cùng.

Mọi thứ trở nên phức tạp chỉ khi bạn có độ trong suốt một phần, bởi vì bộ lọc loại bỏ nó.
Đây là một cách giải quyết mà tôi đã tìm thấy cho trường hợp này:

  • Xóa Kênh Alpha trên cả hai lớp (hành động nằm trong menu ngữ cảnh)

Các hình ảnh sẽ nhận được nền trắng, nhưng đừng lo lắng, chúng tôi sẽ hoàn tác nó sau.

  • Bộ lọc - Hoạt hình - Tối ưu hóa (Sự khác biệt)

Bây giờ chúng ta có lớp khác biệt với nền trắng ở những nơi trong suốt một phần, nhưng chúng ta cần những pixel đó trong suốt, vì vậy chúng ta sẽ lấy hình dạng của diff và sao chép hình ảnh của hình dạng này từ lớp trên cùng ban đầu. Đảm bảo lớp diff mới được tạo được chọn và tiếp tục:

  • Layer - Layer to Image Size
  • Chỉnh sửa - Sao chép (Ctrl + C)
  • Quay trở lại hình ảnh ban đầu
  • Hoàn tác, Hoàn tác để trả lại độ trong suốt cho các lớp của chúng tôi
  • Chỉnh sửa - Dán dưới dạng - Lớp mới
  • Alpha to Selection (trong menu ngữ cảnh) trên lớp diff đã dán
  • Xóa lớp diff đã dán
  • Đảm bảo rằng lớp trên cùng được chọn và Sao chép (Ctrl + C) từ đó
  • Bây giờ bạn có diff, chỉ cần Dán (Ctrl + V) nó và tạo một layer mới từ nó.

Tất nhiên, không có phép màu nào xảy ra và lớp trên cùng trong suốt một phần sẽ không thay đổi màu sắc hoặc làm giảm độ trong suốt của lớp dưới cùng, do đó, chỉ dành cho các trường hợp mở rộng, trong đó các pixel bị thay đổi của lớp trên cùng che phủ lớp dưới cùng.


Phương pháp của PS jsbueno không phù hợp với tôi.


1

GIMP có chế độ cọ có tên "Xóa màu". Áp dụng cọ này, được tô màu bằng màu X, cho pixel xác định P1 tạo ra pixel P2 với kênh alpha được hạ thấp, cách pha trộn P2 với pixel với màu X ở chế độ bình thường cho kết quả pixel P1. Hiệu ứng tương tự, được áp dụng cho vùng được chọn hoặc toàn bộ hình ảnh có thể đạt được bằng cách sử dụng hành động "Color to Alpha" .

Chế độ cọ vẽ cũng có thể được áp dụng cho "Công cụ nhân bản". Trong trường hợp này, có thể lấy màu từ các pixel của ảnh nền A và áp dụng nó cho các pixel tương ứng của ảnh kết quả B. Ảnh còn lại là ảnh mong muốn C.

Trong chi tiết tạo hình ảnh C là như sau:

  1. Đặt hình ảnh A và B dưới dạng các lớp (A bên dưới B).
  2. Sao chép hình ảnh B và gọi nó là C. Đặt nó giữa A và B. Ẩn hình ảnh B.
  3. Chọn "Công cụ nhân bản". Trên ngăn "Tùy chọn công cụ", đặt các tùy chọn sau: Chế độ: "Xóa màu"; Bàn chải: sử dụng cọ tròn sắc nét ("Độ cứng 100") Kích thước: làm cho bàn chải lớn hơn để dễ dàng vẽ tất cả hình ảnh cùng một lúc.
  4. Chọn Một lớp và CTRL + trên pixel trên cùng bên trái để chọn một nơi để sao chép và ghi nhớ vị trí của nó (để thu phóng 100%, nó sẽ là (1,1), với 50% sẽ là (2,2), v.v.).
  5. Bây giờ chọn lớp C và bắt đầu vẽ từ trên cùng bên trái và che tất cả hình ảnh mà không cần nhấc cọ. Có vẻ như hình ảnh không thay đổi. Nhưng nếu bạn ẩn lớp A, bạn sẽ thấy lớp C đó hiện chứa hình ảnh mong muốn.
  6. Kiểm tra kết quả: Hiển thị lớp A và lớp C. Chuyển đổi mức độ hiển thị của lớp B để chắc chắn rằng hình ảnh trông giống nhau. (Bạn cũng có thể chọn Chế độ "Khác biệt" cho lớp B, trong trường hợp đó bạn sẽ có được hình ảnh hoàn toàn đen.)

Lưu ý: Phương pháp này hoạt động như mô tả nếu hình nền mờ. Trên các phần trong suốt của ảnh nền, trộn C trên đỉnh A trông khác với ảnh B.

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.