Pyth, 18 bytes
s.e+@bk&-hyklb@_bk Explanation
s.e+@bk&-hyklb@_bk .e # Iterate through implicit input with (b = row, k = index) @bk # b[k] + &-hyklb@_bkhyklb # plus b[::-1][k] # if ((2 * k) + 1) - len(b) != 0 + @_bk # plus b[::-1][k] s # sum results from the iteration The ((2 * k) + 1) - len(b) is derived from rearranging k - (len(b) - (k + 1))