Tôi đã nhập một hình ảnh trong MATLAB và trước khi tôi hiển thị nó, làm cách nào để làm cho nền của hình ảnh trong suốt? Ví dụ tôi có một quả bóng màu đỏ trên nền trắng, làm thế nào tôi có thể làm cho các điểm ảnh màu trắng của hình ảnh trong suốt để chỉ có thể nhìn thấy quả bóng màu đỏ và các điểm ảnh màu trắng trong suốt?Làm cho một điểm ảnh trong suốt trong Matlab
Trả lời
Bạn cần đảm bảo hình ảnh được lưu ở định dạng 'png'. Sau đó, bạn có thể sử dụng 'Alpha' parameter của tệp png, là một ma trận chỉ định độ trong suốt của mỗi pixel riêng lẻ. Về cơ bản nó là một ma trận boolean là 1 nếu pixel là trong suốt, và 0 nếu không. Điều này có thể được thực hiện dễ dàng với vòng lặp for miễn là màu bạn muốn minh bạch luôn có cùng giá trị (tức là 255 cho uint8). Nếu không phải lúc nào cũng có cùng giá trị thì bạn có thể xác định ngưỡng hoặc phạm vi giá trị, trong đó pixel đó sẽ trong suốt.
Cập nhật:
Đầu tiên tạo ra các ma trận alpha bằng cách duyệt qua các hình ảnh và (giả sử bạn thiết lập màu trắng phải minh bạch) bất cứ khi nào pixel là màu trắng, thiết lập các ma trận alpha tại pixel như 1.
# X is your image
[M,N] = size(X);
# Assign A as zero
A = zeros(M,N);
# Iterate through X, to assign A
for i=1:M
for j=1:N
if(X(i,j) == 255) # Assuming uint8, 255 would be white
A(i,j) = 1; # Assign 1 to transparent color(white)
end
end
end
Sau đó sử dụng ma trận alpha mới được tạo này (A) để lưu hình ảnh như là một ".png"
imwrite(X,'your_image.png','Alpha',A);
Lưu ý cho các vòng trong MATLAB nên tránh bằng mọi giá vì chúng chậm. Viết lại mã để loại bỏ các vòng thường được gọi là "vectorizing" mã. Trong trường hợp của câu trả lời ademing2, nó có thể được thực hiện như sau:
A = zeros(size(X));
A(X == 255) = 1;
- 1. Matlab: Lưu hình với nền trong suốt
- 2. Java BufferedImage làm thế nào để biết nếu một điểm ảnh là trong suốt
- 3. cách hiển thị điểm trên hình ảnh trong MATLAB?
- 4. Đặt độ trong suốt trong ảnh IOS
- 5. Làm nền trắng của hình ảnh trong suốt trong css
- 6. Làm cho mỗi pixel của một hình ảnh có màu sắc cụ thể trong suốt
- 7. Làm thế nào để vẽ một đường trên một hình ảnh trong MATLAB?
- 8. Vẽ các điểm 3D trong Matlab
- 9. Viết văn bản trong suốt trên ảnh
- 10. Phát hiện đầu vào cho một Nhóm có hình ảnh trong suốt chồng lên nhau
- 11. Làm cách nào để tải Ảnh trong suốt từ ImageList?
- 12. Lặp qua các điểm ảnh trong một hình ảnh
- 13. InputMethod trong suốt cho Android
- 14. Kết hợp nền với hình ảnh trong suốt trong PIL
- 15. Làm thế nào tôi có thể xoay một png trong suốt 45 độ bằng cách sử dụng imagemagick và giữ cho hình ảnh mới trong suốt?
- 16. Đọc nhiều hình ảnh trên một thư mục trong Matlab
- 17. HTML5 cách vẽ hình ảnh pixel trong suốt trong canvas
- 18. RMagick xóa nền trắng khỏi hình ảnh và làm cho nó trong suốt
- 19. Hình ảnh trong suốt - có thể trong JS không?
- 20. Làm thế nào tôi có thể có một gradient trong suốt đẹp xuyên suốt được áp dụng cho một hình ảnh với PHP?
- 21. Làm thế nào để tạo JButton một phần trong suốt trên JFrame hoàn toàn trong suốt?
- 22. Làm thế nào để vẽ một con đường thông suốt từ điểm đầu đến điểm kết thúc trong D3.js
- 23. Tìm điểm ảnh đường viền của hình ảnh với xung quanh trong suốt (để phát hiện rạch)
- 24. Làm cách nào để làm cho JFrame trong suốt?
- 25. Làm thế nào để làm cho NSTableView trong suốt?
- 26. Xóa độ trong suốt trong hình ảnh với C#
- 27. Tạo hình ảnh có nền trong suốt trong ImageMagick
- 28. Làm cách nào để chọn ngẫu nhiên điểm k từ N điểm trong MATLAB?
- 29. Cách làm cho thanh Điều hướng trong suốt và mờ dần như trong ứng dụng ảnh trong iPhone
- 30. Tách một mảng trong MATLAB
Cảm ơn @ ademing2. Bạn có một ví dụ ngắn gọn? – omegaFlame
Tôi đã chỉnh sửa câu trả lời ban đầu của mình bằng một ví dụ. –
Cảm ơn. Tuy nhiên, đầu ra hình ảnh chỉ là 1x1 và 87 byte. Bất kỳ ý tưởng? – omegaFlame