IDL编程学习

本文介绍了使用IDL编程语言进行图像处理和数据可视化的两个实例。首先,通过绘制二维散点图展示图像的红绿波段像素值,揭示了不同波段之间的关系。其次,演示了图像直方图均衡化的过程,包括原始图像的直方图统计、归一化显示以及对比增强后的效果。这些方法对于理解图像特征和改善视觉效果具有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.二维散点图绘制

pro draw_example
  ; Read in a 2-band image.

  file = FILE_WHICH('glowing_gas.jpg')
  !null = QUERY_IMAGE(file, info)
  gas = READ_IMAGE(file)

  ;help,gas[0,*,*]

  red_band_pixels = REFORM(gas[0,*,*], PRODUCT(info.dimensions))
  green_band_pixels = REFORM(gas[1,*,*], PRODUCT(info.dimensions))
  ; Plot red versus green band.
  myPlot = SCATTERPLOT(red_band_pixels, green_band_pixels, $
    SYMBOL = 'dot', /SYM_FILLED, SYM_COLOR = 'purple', $
    XTITLE = 'Red band value', $
    YTITLE = 'Green band value', $
    TITLE = 'Red vs. green band of "glowing_gas.jpg"')

end

结果显示:

2.归一化显示

pro draw_example2
  file = FILEPATH('mineral.png', $
    SUBDIRECTORY = ['examples', 'data'])
  image = READ_PNG(file, red, green, blue)
  imageSize = SIZE(image, /DIMENSIONS)
  DEVICE, DECOMPOSED = 0
  TVLCT, red, green, blue
  WINDOW, 0, XSIZE = imageSize[0], YSIZE = imageSize[1], $
    TITLE = 'Original Image'
  TV, image
  
  WINDOW, 1, TITLE = 'Histogram of Image'
  PLOT, HISTOGRAM(image), /XSTYLE, /YSTYLE, $;这里似乎只能对二维数组进行统计
    TITLE = 'Mineral Image Histogram', $
    XTITLE = 'Intensity Value', $
    YTITLE = 'Number of Pixels of That Value'
  p1=plot(HISTOGRAM(image),color='red',name='PA',symbol=2,xtitle='阈值',ytitle='精度')

  equalizedImage = HIST_EQUAL(image)
  WINDOW, 2, XSIZE = imageSize[0], YSIZE = imageSize[1], $
    TITLE = 'Equalized Image'
  TV, equalizedImage

end

结果显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值