我已经在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