ImgArray and Img Testing

Create ImgArray

constructor({height=256, width=256,channel=3,lazy=false,dtype='float32'}):构造函数,创建一个ImgArray对象,参数为高、宽、通道数、创建时不分配空间,数组中元素的类型


shape and value

获取ImgArray的形状和具体数值,无需接收参数


ElIdx and Idx

elidxtoidx(elidx):元素索引转换为数组索引,参数为元素索引;idxtoelidx(hidx,widx,cidx):数组索引转换为元素索引,参数为数组高、宽、通道索引


Array Element Access

getel(hidx,widx,cidx):获取指定位置的元素值,参数为数组高、宽、通道索引;setel(hidx,widx,cidx,value):设置指定位置的元素值, 参数为数组高索引、宽索引、通道索引、设置值;fill(value=3,cidx=null):修改指定通道的数值为特定值


dstack and dsplit

dstack(...imgars):按通道进行数组的堆叠,将该数组与另外多个高宽一致的数组堆叠为一个新数组,新传入的数组通道堆叠在后面;dsplit(...channels):将数组沿通道进行分割, 可获取指定通道的数据,参数为指定的通道


Arithmetic operations

add(otherArrayOrValue):加减乘除四则运算,参数为ImgArray或者一个数值


Numeric operations

clamp(vmin=0,vmax=255):对数组进行指定范围内的截断,参数为截断的两个边界值;relu(value=0):接收一个域值value,小于value的值为0,大于等于value的值保持不变;stretch(vmin=0,vmax=255):将数组拉伸到指定范围内,参数为两个边界值


pad and slice

pad(margin=[1,2,3,4],fillvalue=0):对ImgArray进行扩边操作,参数为左上右下要扩大的个数,以及扩边时的填充值; slice(sthidx,edhidx,stwidx,edwidx):按照指定的位置进行切片操作,参数为高的起始位置和结束位置(不包含结束位置), 宽的起始和结束位置(不包含结束位置);neighbor(sizes=[3,3],fillvalue=0):按尺寸进行邻域展开, sizes是2个元素组成的数组,表示邻域的高和宽,应当是奇数


Channel Aggregation(通道聚集运算)

mean(ischannel=false):计算均值,当ischannel为True时,沿通道计算均值,否则计算全局均值; max(ischannel=false):计算最大值,当ischannel为True时,沿通道计算最大值,否则计算全局最大值; min(ischannel=false):计算最小值,当ischannel为True时,沿通道计算最小值,否则计算全局最小值; linearc(weights=[1,2,3],bais=0):线性加权和,参数为权重和偏置值,weights的长度需要与数组的通道数相同;

Img filter(图像滤波)

median(sizes=[3,3],fillvalue=0): 中值滤波,参数为邻域的高和宽,以及扩边的填充值;gaussianBlur(sigma=2,kernel_size=[3,3],size=[3,3],fillvalue=0): 高斯滤波,参数为高斯核的标准差,高斯核的高和宽,邻域的高和宽,扩边的填充值; sobelx():得到图像水平方向上的梯度图像;sobely():得到图像垂直方向上的梯度图像;sobelxy(): 得到图像水平与垂直方向上结合后的梯度图像;laplacian4:算子为[[0,-1,0],[-1,4,-1],[0,-1,0]]; laplacian8:算子为[[-1,-1,-1],[-1,8,-1],[-1,-1,-1]];sharrx():水平方向上进行操作;sharry(): 垂直方向上进行操作;sharrxy():水平方向与垂直方向结合后进行操作;


Pooling and Morphological Operations

maxpooling(size=[3,3],fillvalue=0):最大值池化,参数为邻域范围和填充值;

minpooling(size=[3,3],fillvalue=0):最小值池化,参数为邻域范围和填充值;

avgpooling(size=[3,3],fillvalue=0):平均值池化,参数为邻域范围和填充值;

dilate(pattern=[[1,1,1],[0,1,0],[1,1,1]],fillvalue=0):膨胀操作,参数为结构元素和填充值;

erode(pattern=[[1,1,1],[0,1,0],[1,1,1]],fillvalue=0):腐蚀操作,参数为结构元素和填充值;

mgradient(sizes=[3,3],fillvalue=0):基本形态学梯度,参数为邻域范围和填充值;



open(pattern=[[1,1,1],[0,1,0],[1,1,1]], fillvalue=0):开运算,参数为结构元素和填充值;

close(pattern=[[1,1,1],[0,1,0],[1,1,1]], fillvalue=0):闭运算,参数为结构元素和填充值;

tophat(pattern=[[1,1,1],[0,1,0],[1,1,1]], fillvalue=0):顶帽运算,参数为结构元素和填充值;

blackhat(pattern=[[1,1,1],[0,1,0],[1,1,1]], fillvalue=0):黑帽运算,参数为结构元素和填充值;

lbp():用于图像处理中纹理特征提取;

lmi(sizes=[3,3]):对图像中的每个像素的局部邻域进行处理;

cellsim(sizes=[3,3]):元胞自动机,参数可能指定了元胞自动机中每个元胞周围的邻域大小;


Other ImgArray Operations

copy():复制当前数组,无需接收参数;empty():创建一个与当前数组尺寸相同的新数组,无需接收参数; meshgrid(hrange=[0,256],wrange=[0,256]):产生规则格网,参数为x和y的取值范围。 random(height=256,width=256,channel=3,vmin=0,vmax=255):创建一个指定尺寸的,指定范围的均值分布的数组。 参数为图像的高和宽,图像通道数,范围的最小值和最大值。


Create Img

{height=256,width=256,lazy=false}:创建一个Img对象,参数为Img的高和宽


Img Shape

shape():读取Img对象的形状;value():读取Img对象的数值;fromarray(imgarray):创建一个imgarray对象并将其转换为img对象,然后展示在页面中。


Img Operations

tofile(name='download.png'):将图像以指定名称保存,参数为指定的名称;

tourl():将图像转为url,不需要接收参数;

toimg(imgele):将Img转换为img标签元素在网页中展示出来;

tocanvas(canvasele):将Img转换为画布元素在网页中展示出来,参数为指定的canvas元素;

toarray(droptrans=true):将图像转为数组,droptrans表示通道丢弃,即只保留RGB三个通道的数据;默认值为true;

fromurl(imgurl):返回的是一个Promise对象,将指定的url转换为img对象并展示在页面的画布中;

fromimg(imgele):返回的是一个Promise对象,将img标签元素转换为Img对象并展示在页面中;

fromcanvas(canvasele):将canvas元素转换为Img对象并展示在页面中;

fromblob:将blob对象转换为Img对象并展示在页面中;




Img Draw

drawbox(x=50, y=50, w=50, h=50, color='#000000', linewidth=2, fill=false, fillcolor='#000000'): 在图像上画一个指定大小的矩形,参数的含义为矩形框的左上角坐标,矩形框的宽和高,矩形框的框线颜色,框线线条粗细,以及矩形框是否填充,以及填充颜色; drawtext(x=50, y=50, text='Hello', color='red', linewidth=2, fontSize=20): 在图像上绘制一个指定大小的文字,参数的含义为文字的左上角坐标,文字内容,文字颜色,框线线条粗细,以及文字的字体大小; testImgdraw:在图像上已经绘制了一个矩形框后,再在矩形框中上绘制一些文字




Other Img Operations

hist(channel = 3):画出指定通道的像素值直方图,函数接收通道数(0,1,2),输入3时表示三通道的直方图; resize(height=256,width=256):将图像缩放为指定大小;接收指定尺寸的高度和宽度,输入256时表示将图像缩放为256*256大小; opacity(value=255):设置图像不透明度,接受一个参数,参数越大越不透明,取值0~255