MATLAB图像矩形掩码代码转换为Python实现求助
MATLAB转Python代码实现
这段MATLAB代码的作用是:创建一个600行×800列的全零矩阵,然后以矩阵的(301,401)位置为中心,填充一个边长为2*width+1的全1正方形区域。
对应的Python实现需要用numpy库完成矩阵操作,代码如下:
import numpy as np width = 50 # 创建600行、800列的全零数组 Fs = np.zeros((600, 800)) # 调整索引范围(Python为0起始索引,MATLAB是1起始,需对应转换) Fs[300-width : 301+width, 400-width : 401+width] = 1
关键说明
- MATLAB的
301-width:1:301+width对应Python的300-width : 301+width:因为Python切片是左闭右开规则,且索引从0开始,所以原MATLAB的起始索引需减1,结束索引直接使用MATLAB的终止值即可覆盖对应区域。 - 直接赋值
1比单独创建ones数组更高效,numpy会自动将数值广播到指定的矩阵区域。
内容的提问来源于stack exchange,提问作者User123
相关产品推荐
相关产品推荐

