- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将彩色图像转换为纯黑白。我环顾四周寻找一些代码来做到这一点并解决了
im = Image.open("mat.jpg")
gray = im.convert('L')
bw = gray.point(lambda x: 0 if x<128 else 255, '1')
bw.save("result_bw.jpg")
然而,结果还是有灰色!
所以,我试着自己做:
floskel = Image.open("result_bw.jpg")
flopix = floskel.load()
for i in range (0,floskel.size[0]):
for j in range (0, floskel.size[1]):
print flopix[i,j]
if flopix[i,j]>100:
flopix[i,j]=255
else:
flopix[i,j]=0
但是,图像中仍然存在灰色。
我做错了什么吗?
最佳答案
正如 sebdelsol 所提到的,直接在彩色源图像上使用 im.convert('1')
会好得多。标准的 PIL“抖动”是 Floyd-Steinberg 误差扩散,这通常非常好(取决于图像),但还有多种其他选项,例如随机抖动和有序抖动,尽管您必须自己编写代码,所以他们会慢很多。
您在 OP 的代码中使用的转换算法只是简单的阈值处理,虽然很容易编写,但通常会丢失很多的细节。但我想在这种情况下,您只是想确认您关于最终图像中存在灰色像素的理论。但正如 sebdelsol 所说,它只是看起来因为“噪音”而有灰色像素,即包含大量混合在一起的黑白像素的区域,如果你缩放,你应该能够验证进入图像。
FWIW,如果你确实想对整个图像进行自己的逐像素处理,使用 im.getdata()
获取像素列表并将它们放回图像与 im.putdata()
,而不是做 flopix[i,j]
的东西。当然,如果您不需要知道坐标,使用 im.point()
的算法通常很快。
最后,JPEG 并不真正适合黑白图像,它专为具有(大部分)连续色调的图像而设计。尝试另存为 PNG;生成的文件可能比等效的 JPEG 文件小很多。可以通过使用低质量设置保存来减小 JPEG 文件的大小,但结果通常看起来不太好。
关于python - 显示灰色的 BW 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795666/
我有2个变量。 我需要弄清楚它们之间的区别。 $ var(a,b,c,d)和$ var2(a,b,c,d,e,f,g)。 如何使用xpath功能做到这一点? 任何帮助表示赞赏。 提前致谢 最佳答案 如
目前,我正在尝试导入带有sqoop的SAP HANA表。在这里,我遇到表名称和列名称都包含正斜杠“/”的问题。 对于表名,我可以使用查询选项并将表名转义为解决方法。但是,如果要使用不同的映射器导入表,
如何在 TIBCO Admin 上启用日志?我想检查我发布给听众的任何文件。监听器能够接收请求。 最佳答案 可以设置 Trace.Startup=true Trace.Task.*=true Trac
我正在尝试使用 Azure 中的数据工厂从 SAP BW 导出数据。连接正常,我能够获取数据。问题是我如何获取数据。图片很好地描述了这个问题。 有人遇到过类似的事情吗?关于如何解决这个问题有什么建议吗
在TIBCO BW 6.2中,是否可以使用bwadmin或maven将应用程序部署到远程TEA服务器? 最佳答案 是的,您可以在 bwagent 网络中任何可用的网络上部署应用程序。在这里,在 BW
在TIBCO BW 6.2中,是否可以使用bwadmin或maven将应用程序部署到远程TEA服务器? 最佳答案 是的,您可以在 bwagent 网络中任何可用的网络上部署应用程序。在这里,在 BW
我想做的是创建一个包含 3 张图片(并排)的菜单: 我希望每张图片在悬停时都变色。 这里的问题是图片的大小应该与窗口大小相匹配(响应平板电脑和手机)。 我似乎无法让它工作,因为图片之间有一个空间,而且
我正在尝试将彩色图像转换为纯黑白。我环顾四周寻找一些代码来做到这一点并解决了 im = Image.open("mat.jpg") gray = im.convert('L') bw = gray.p
所以一些背景。我的任务是编写一个 matlab 程序来计算可见光显微图像中酵母细胞的数量。为此,我认为第一步是细胞分割。在我得到真实的实验图像集之前,我开发了一种算法,使用利用分水岭 的测试图像集。看
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
我在 SJ 方法中使用密度函数: rdat <- rnorm(111111) density(rdat, bw = "sj") Error in bw.SJ(x, method = "ste") :
我正在尝试在 Python 中实现 Matlab 函数 bwmorph(bw,'remove')。如果某个像素的所有 4 个相连的相邻像素均为 1,则此函数通过将像素设置为 0 来删除内部像素。生成的
如何使用 ./flows.sh suspend 等输入参数运行 shell 脚本文件,并使用 tibco bw 将结果打印到文件? 最佳答案 您需要使用调色板创建一个流程。 Palette Exter
我需要一种算法,从 1 位二维图像(混合 1 和 0 的二维矩阵)返回矩形(每个角的 x,y 坐标),这些矩形包含等于零的像素,使用最少的盒子。 所以对于像这样的图像 0000000 1111111
我刚刚阅读了一篇关于下一版本 SQL Server 的“内存中 OLTP”的论文;它提到在 CTP2 中添加了 BW-Tree 以及哈希索引。 那么什么是 BW 树?有人可以在我(和其他所有人)不必阅
我们有一个包含 1.6 年数据的多维数据集,并且需要很长时间才能加载。之前我们遇到了内存问题错误,但我们增加了 SAP 内存大小。谁能向我解释一下解决问题的方法,或者我们可以遵循的最佳实践? 我们目前
我们正在尝试通过此链接获取入站和出站 SOAP 消息 https://www.tibcommunity.com/docs/DOC-2642 java.property.com.tibco.plugin
我正在研究 termcap 库。我正在尝试在终端中做一个行编辑器。我有一个可以在线移动的光标。一条线一切都很好。但是,如果我的行大于终端宽度,我无法使用 le 命令(将光标向左移动)将光标从第二行返回
我正在尝试使用 CSS 处理图像以使其成为单色(假设为“蓝白色”)。我知道如何使用 CSS 降低图像的饱和度: .image img { filter: gray; filter: grayscale
【技术分享】万字长文图文并茂读懂高性能无锁 “B-Tree 改”:Bw-Tree 原文链接: https://mp.weixin.qq.com/s/I5TphQP__tHn6JoPcP
我是一名优秀的程序员,十分优秀!