我已經在matlab中導入圖像,並在顯示之前如何讓圖像的背景透明?例如,我在白色背景上有一個紅色的球,我將如何使圖像的白色像素變得透明,以便只有紅色的球可見並且白色像素是透明的?在Matlab中使像素透明
6
A
回答
15
您需要確保圖像以'png'格式保存。然後,您可以使用png文件的'Alpha' parameter,該文件是一個矩陣,它分別指定每個像素的透明度。它基本上是一個布爾矩陣,如果像素是透明的,則爲1,否則爲0。只要想要透明的顏色總是相同的值(即uint8爲255),就可以使用for循環輕鬆完成此操作。如果它不總是相同的值,那麼你可以定義一個閾值或值的範圍,該像素將是透明的。
更新:
首先通過經由圖像迭代和(假設設置白色是透明的),只要像素是白色的生成阿爾法矩陣,設置alpha矩陣在該像素作爲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
然後用這個新創建的阿爾法基質(A)將圖像保存爲 「png格式」
imwrite(X,'your_image.png','Alpha',A);
10
MATLAB中的循環注意應該不惜一切代價避免,因爲它們很慢。重寫代碼以刪除循環通常稱爲「向量化」代碼。在ademing2的回答中,可以這樣做:
A = zeros(size(X));
A(X == 255) = 1;
相關問題
- 1. 在QImage中使像素透明
- 2. 使黑色像素透明
- 3. 更改黑色像素在matlab中是透明的
- 4. 在MATLAB中透明流線
- 5. 在UIImage中獲取透明像素
- 6. RGB像素透明度
- 7. WPF中透明的不透明元素
- 8. ImageView ColorFilter在非透明像素上。 Clip
- 9. 使圖像透明在IE中顯示非透明背景
- 10. 在ImageView中的不透明圖像上的透明圖像
- 11. 透明度 - 在matlab中替換EVAL
- 12. 透明圖像搞亂透明圖像
- 13. 爲什麼透明像素在圖像中顯示爲黑色?
- 14. 像素每像素圖像,透明變成黑色
- 15. 如何在透明元素上添加非透明元素?
- 16. Matlab透明覆蓋矩陣
- 17. 透明背景圖(matlab)
- 18. Android Renderscript設置鄰居像素透明
- 19. 用載波來裁剪透明像素
- 20. 帆布只得到不透明像素
- 21. 不透明像素點擊檢測
- 22. 透明圖像
- 23. 使圖像變得透明
- 24. 使圖像背景透明
- 25. 使用命令行將透明像素線添加到圖像
- 26. mouseListeners和JLabels使用具有透明像素的圖像
- 27. 在另一個透明圖像上移動透明圖像
- 28. 透明PNG圖像在瀏覽器中不完全透明
- 29. 透明背景透明圖像問題
- 30. Matlab中的標記透明度
Thanks @ ademing2。你有一個簡單的例子嗎? – omegaFlame 2012-04-18 16:22:58
我用一個例子編輯了我的原始答案。 – 2012-04-19 13:15:39
謝謝。但是,圖像輸出僅爲1x1和87個字節。有任何想法嗎? – omegaFlame 2012-04-19 16:02:03