[LAB 03 · 空间信息:表示、采样与掩码](/course/notebooks/49a2c030eafa4e1db6fc4f1a08c3810a.html) # 3. 实例掩码 · 实现代码 [独立阅读](/course/notebook-blocks/c29bd696d6a14697aec8bacd7fc5b1a8.html) 按问题继续 同源场景标签、插值、信息碰撞的轻量解析代码 展开完整实现代码 ``` # 本格独立:先预测,再修改 x_image / 特征值,不用前格变量。 import math feature = [0.,1.,2.,6.,7.] def linear_at(x_image, stride, values): u=x_image/stride if not 0<=u<=len(values)-1: raise ValueError('采样位置超出已有特征;请一起检查坐标与特征范围') lo=math.floor(u); hi=min(lo+1,len(values)-1) a=u-lo return u,(1-a)*values[lo]+a*values[hi] assert linear_at(35,16,feature)==(2.1875,2.75) x_image, stride = 35.,16. u,value=linear_at(x_image,stride,feature) print('原图x / stride =',u,';线性插值 =',value) A=[[1.,0.],[1.,0.]];B=[[0.,1.],[0.,1.]] def encode(m): return sum(map(sum,m))/4, sum(r[0]-r[1] for r in m)/2 fa,fb=encode(A),encode(B) print('只留均值:',fa[0],fb[0]) print('增加左列−右列通道:',fa,fb) print('均值各放大为2×2:',[[fa[0]]*2]*2,[[fb[0]]*2]*2) assert fa==(0.5,1.0) and fb==(0.5,-1.0) ```