Не очень понимаю смысла вот в таком делении и приведении типов ``(int)(img.rows / 2.0f)`` и ``(int)(img.cols / 2.0f)``. Зачем делить на вещественное число, а потом приводить к ``int``, если можно выполнить целочисленное деление.