如何在树莓派上使用图片特效
现在使用树莓派摄像头模组("raspi cam"),也可以像使用卡片相机那样,给拍摄的照片增加各种各样的图片特效。 raspistill命令行工具,为您的树莓派提供了丰富的图片特效选项,来美化处理你的图片。
有三个命令行工具可以用于抓取raspicam拍摄的照片或者视频,在这文章中将重点介绍其中的raspstill工具。raspstill工具提供了丰富的控制选项来处理图片,比如说:锐度(sharpness)、对比度(contrast)、亮度(brightness)、饱和度(saturation)、ISO、自动白平衡(AWB)、以及图片特效(image effect)等。
在这篇文章中,将介绍如何使用raspstill工具以及raspicam摄像头模组来控制照片的曝光、AWB以及其他的图片效果。我写了一个简单的Python脚本来自动拍摄照片并在这些照片上自动应用各种图片特效。raspicam的帮助文档中介绍了该摄像头模组所支持的曝光模式、AWB和图片特效。总的来说,raspicam一共支持16种图片特效、12种曝光模式以及10种AWB选项。
Python脚本很简单,如下所示 。
<span class="com">#!/usb/bin/python</span>
<span class="kwd">import</span><span class="pln"> os</span>
<span class="kwd">import</span><span class="pln"> time</span>
<span class="kwd">import</span><span class="pln"> subprocess</span>
<span class="pln">list_ex</span><span class="pun">=[</span><span class="str">'auto'</span><span class="pun">,</span><span class="str">'night'</span><span class="pun">]</span>
<span class="pln">list_awb</span><span class="pun">=[</span><span class="str">'auto'</span><span class="pun">,</span><span class="str">'cloud'</span><span class="pun">,</span><span class="pln">flash</span><span class="str">']</span>
<span class="str">list_ifx=['</span><span class="pln">blur</span><span class="str">','</span><span class="pln">cartoon</span><span class="str">','</span><span class="pln">colourswap</span><span class="str">','</span><span class="pln">emboss</span><span class="str">','</span><span class="pln">film</span><span class="str">','</span><span class="pln">gpen</span><span class="str">','</span><span class="pln">hatch</span><span class="str">','</span><span class="pln">negative</span><span class="str">','</span><span class="pln">oilpaint</span><span class="str">','</span><span class="pln">posterise</span><span class="str">','</span><span class="pln">sketch</span><span class="str">','</span><span class="pln">solarise</span><span class="str">','</span><span class="pln">watercolour</span><span class="str">']</span>
<span class="str">x=0</span>
<span class="str">for ex in list_ex:</span>
<span class="str">for awb in list_awb:</span>
<span class="str">for ifx in list_ifx:</span>
<span class="str">x=x+1</span>
<span class="str">filename='</span><span class="pln">img_</span><span class="str">'+ex+'</span><span class="pln">_</span><span class="str">'+awb+'</span><span class="pln">_</span><span class="str">'+ifx+'</span><span class="pun">.</span><span class="pln">jpg</span><span class="str">'</span>
<span class="str">cmd='</span><span class="pln">raspistill </span><span class="pun">-</span><span class="pln">o </span><span class="str">'+filename+'</span><span class="pun">-</span><span class="pln">n </span><span class="pun">-</span><span class="pln">t </span><span class="lit">1000</span><span class="pun">-</span><span class="pln">ex </span><span class="str">'+ex+'</span><span class="pun">-</span><span class="pln">awb </span><span class="str">'+awb+'</span><span class="pun">-</span><span class="pln">ifx </span><span class="str">'+ifx+'</span><span class="pun">-</span><span class="pln">w </span><span class="lit">640</span><span class="pun">-</span><span class="pln">h </span><span class="lit">480</span><span class="str">'</span>
<span class="str">pid=subprocess.call(cmd,shell=True)</span>
<span class="str">print "["+str(x)+"]-"+ex+"_"+awb+"_"+ifx+".jpg"</span>
<span class="str">time.sleep(0.25)</span>
<span class="str">print "End of image capture"</span>
这个脚本完成了以下几个工作。首先,脚本中定义了3个列表,分别用于枚举曝光模式、AWB模式以及图片特效。在这个实例中,我们将使用到2种曝光模式、3种AWB模式以及13种图片特效。脚本会遍历上述3种选项的各种组合,并使用这些参数组合来运行raspistill工具。传入的参数共6个,分别为:(1)输出文件名;(2)曝光模式;(3)AWB模式;(4)图片特效模式;(5)拍照时间,设为1秒;(6)图片尺寸,设为640x480。脚本会自动拍摄78张照片,每张照片会应用不同的特效参数。
执行这个脚本也很简单,只需键入下面的命令行:
<span class="pln">$ python name_of_this_script</span><span class="pun">.</span><span class="pln">py </span>
下面是抓取到一些样张。
小福利
除了使用raspistill命令行工具来操控raspicam摄像模组以外,还有其他的方法可以用哦。Picamera是一个python库,它提供了操控raspicam摄像模组的的API接口,这样就可以便捷地构建更加复杂的应用程序。如果你精通python,那么picamera一定是你的 hack 项目的好伙伴。picamera已经被默认集成到Raspbian最新版本的的镜像中。当然,如果你用的不是最新的Raspbian或者是使用其他的操作系统版本,你可以通过下面的方法来进行手动安装。
首先,先在你的系统上安装pip,详见指导。
然后,就可以按下面的方法安装picamera。
<span class="pln">$ sudo pip install picamera </span>
picamera的使用说明可以查阅官方文档。