一.图像统计
1.统计三剑客:median()函数,skewness()函数,kurtosis()函数,分别用于计算中值,偏度系数,峰度系数。输入数组,出来一个数。
2.直方图统计函数:
result=histogram(array,nbins=value,binsize=value,locations=var,min=value,max=value,omin=var,omax=var)
这里面nbins设置最小间距数目,而binsize可用于设置最小间距,不设置的话间距为1。 max和min设置参与统计的最大值和最小值。
3.众数的统计可以通过得到直方图出现最多灰度值来实现。
histogram=histogram(data,omin=-1,omax=1)
max=max(histogram,index)
max函数中的index用于接收最大值所在的数的索引号。
二 图像增强
1.线性增强:
result=byscl(array,min=value,max=value,top=value)
min设置进行拉伸前你要进行拉伸的最小值,max同理,top设置如果大于max的值将拉伸值top设置的值。
2.直方图均衡
自适应直方图均衡:
result=adapt_hist_equal(array,top=value) file=dialog_pickfile() img=read_image(file) img_hist_equal=adapt_hist_equal(img,top=255) !null=image(img_hist_equal)
只能进行灰度图像的直方图均衡(我只会)
3.掩膜的实现
掩膜主要可以通过where函数来进行实现,利用where()函数
方法一,直接掩膜
i=where(data gt 0 ,count);得到大于0处的索引值
if count ne 0 then data[i] = 0;使大于0处变为0,掩膜实现
方法二 ,利用掩膜图层实现
mask=data gt 0;与bandmath式子一样,大于0处为1,小于0处为0 mask=(data gt 0)*1+(data le 0 )*0;和上面效果一样 img=mask*data;与原始相乘
4.色彩变换
COLOR_CONVERT, I0, I1, I2, O0, O1, O2 [, /HLS_RGB | , /HSV_RGB | , /RGB_HLS | , /RGB_HSV | , /RGB_YCBCR | , /RGB_YIQ | , /RGB_YPBPR | , /RGB_YUV | , /YCBCR_RGB | , /YIQ_RGB | , /YPBPR_RGB | , /YUV_RGB ] [, INTERLEAVE=value] 或者 COLOR_CONVERT, I0, O0 [, /HLS_RGB | , /HSV_RGB | , /RGB_HLS | , /RGB_HSV | , /RGB_YCBCR | , /RGB_YIQ | , /RGB_YPBPR | , /RGB_YUV | , /YCBCR_RGB | , /YIQ_RGB | , /YPBPR_RGB | , /YUV_RGB ] [, INTERLEAVE=value]
第一种语法是:输入I0,I1,I2三个色彩的分量,o开头的三个是输出的三个分量。后面的关键字则表示变化形式。比如/HLS_RGB 就表示从HLS色彩空间变为RGB色彩空间。
第二种语法则简单不少,输入图像,输出图像,然后是变化形式。
exmple:
pro picture_process fn=dialog_pickfile(title='选择班主任图像') if fn eq !null then return img=read_image(fn) color_convert,img,img_hls,/rgb_hls !null=image(img_hls) end
这样子就可以把你班主任的图像进行色彩变换并展示出来了。
下面是我对某天才同学制作的班主任表情包进行的色彩变换。
虽然班主任吹的成分不少,但是确实厉害。前两天南方测绘杯论文比赛,班主任一个人指导两个特等奖。跟着班主任好好干就行了。
来源:51CTO
作者:RS Dash
链接:https://blog.csdn.net/RSstudent/article/details/100862769