from qgis.core import *
import qgis.utils

layer = qgis.utils.iface.mapCanvas().currentLayer()
iter = layer.getFeatures()

crs = layer.crs().toWkt()

out_name = layer.name() + '_centerpoints'
vl = QgsVectorLayer("Point?crs=" + crs, out_name, "memory")
pr = vl.dataProvider()

fet = QgsFeature()

for feature in iter:
    geom = feature.geometry()
    length = geom.length()
    mid = geom.interpolate(length/2)
    fet.setGeometry(mid)
    pr.addFeatures([fet])
    
    
QgsMapLayerRegistry.instance().addMapLayer(vl)