我正在尝试做this之类的事情。我需要从图像中提取每个点的相对光强度,我想知道如何去做。
我想到的第一件事就是将图像转换为黑白图像。我发现了三种不同的算法here。我使用自己的图像作为测试来尝试Python图像库image.convert('1')
中的所有三种算法和内置函数。前两个算法为黑暗部分(如我的头发,眉毛等)提供了一些奇怪的结果;第三个算法'发光度'给出了与我使用某些图像处理软件非常相似的结果。虽然Python内置的只是给了一些荒谬的东西。我不确定哪一个是光强度的最佳表示,而且我不确定当图像都具有不同的光线方向时相机是否已经对不同的图像进行了一些自我调整。
答案 0 :(得分:1)
FWIW,有2个版本的PIL。原来的那个已经过时了,但是有一个叫做Pillow的新叉子。希望您使用Pillow,但要有效地使用Pillow,您需要熟悉the Pillow docs。
FB.login(function(response) {
if (response.authResponse) {
handleUrlStuff();
} else {
whenLoginFailed();
}
},
{
'scope' : 'email',
'auth_type' : 'rerequest'
});
不你想要的是什么:它将图像转换为1位黑色&白色,即没有灰色,只有纯黑色和纯白色。要使用的正确图像mode是image.convert('1')
(亮度),它会为您提供8位灰度图像。
PIL / Pillow用于执行此转换的公式是
'L'
这些系数很常见:例如,它们被ppmtopgm使用; IIRC,它们自NTSC模拟电视时代就开始使用。但是,它们可能不适合其他色彩空间(主要是由于与伽马校正有关的问题)。请参阅YUV colour space&上的维基百科文章。链接了一些其他系数集的文章。
当然,通过对getdata返回的像素元组进行操作,可以很容易地使用其他系数进行转换,但这比使用内置转换要慢。