小编Joy*_*yee的帖子

用numpy/scipy计算矩阵中每个单元格的邻域乘积

我正在尝试实现一种图像处理算法,该算法涉及为每个单元计算4相邻邻域的乘积.也就是说,计算X的新矩阵Y在哪里y[i, j] = x[i-1, j] * x[i, j-1] * x[i+1, j] * x[i, j+1].应忽略越界邻居.

现在我只能想到这种方法:使用scipy.ndimage.filters.correlate和传递权重用零和一个1得到四个矩阵,每个矩阵包含一个方向上每个单元格的邻居,比如传入weight = [[0, 0, 0], [1, 0, 0], [1, 1]],我得到a[i, j] = x[i-1, j],并且我可以得到其他权重b[i, j] = x[i, j-1],c[i, j] = x[i+1, j],d[i, j] = x[i, j+1].然后我np.multiply用来计算这四个矩阵的乘积.

但是,这种方法有点太慢,我不能忽视边界.有没有另一种方法来做numpy/scipy所以我不必诉诸于循环?

python numpy

5
推荐指数
1
解决办法
385
查看次数

如何将文件头复制到其他文件而不会丢失bash中的换行符?

我得到的是这样的:

working_dir
|-- samples
|-- table1.tbl
|-- table2.tbl
|-- table3.tbl
Run Code Online (Sandbox Code Playgroud)

我想拥有的是这样的:

working_dir
|-- samples
|   |-- table1.tbl
|   |-- table2.tbl
|   |-- table3.tbl
|-- table1.tbl
|-- table2.tbl
|-- table3.tbl
Run Code Online (Sandbox Code Playgroud)

samples目录中的.tbl文件将包含根目录中这些.tbl文件的前10行.

我试过了

for FILE in `ls *.tbl`; do
  NEWFILE="samples/$FILE"
  if [ ! -f "$NEWFILE" ] ; then
      touch "$NEWFILE"
  fi
  echo `head $FILE` > $NEWFILE
done
Run Code Online (Sandbox Code Playgroud)

但是.tbl文件中的换行符samples丢失了,10行的内容被压缩到每个.tbl文件中的一行.

有帮助吗?谢谢.

bash echo head

1
推荐指数
1
解决办法
89
查看次数

标签 统计

bash ×1

echo ×1

head ×1

numpy ×1

python ×1