IDL图像处理(1)

一.图像统计
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

这样子就可以把你班主任的图像进行色彩变换并展示出来了。
下面是我对某天才同学制作的班主任表情包进行的色彩变换。
rgb班主任表情包
变换后hls

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值