日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IDL(彩色)图像处理(2)

發布時間:2024/3/26 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IDL(彩色)图像处理(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.圖像濾波處理
均值平滑利用smooth函數
result=smooth(img,width,/edge_truncate)
img是數組,做圖像處理就用img代替了,width是卷積核的寬度,一般3或5。
/Edge_truncate關鍵字用于設置圖像邊緣是否進行擴展之后濾波。個人覺得設置上就行。

中值濾波用median()函數,與smooth函數用法基本相同。
result=median(img,width)

這兩個函數寫一個例子:

pro picture_process fn=dialog_pickfile(title='') if fn eq !null then return img=read_image(fn) img_smooth=smooth(img,[1,20,20]) ;這里的width用法特殊, 是在不同維度上設置卷積核,因為是rgb圖像,必須有多波段卷積核設置 result=image(img_smooth) end

我和我舍友一個校草合照了一張:

舍友太帥了我頂不住。
下面將我和校草舍友的合照進行均值平滑:

大家模糊起來
2.銳化(邊緣提取,邊緣增強)
就列舉遙感導論上介紹的三種算子:Roberts,Sobel,Laplacian三個。
result=roberts(image)
result=sobel(image)
result=laplacian(image)
3.自己設置卷積核進行運算
result=convol(img,kernel,scale_factor,/normalize,/edge_truncate,/edge_zero)
img是輸入的圖像,kernel是自我設置的卷積核,scale_factor設置比例系數,就是用這個值乘以每一個像元值,若設置/normalize則此值失效。edge_truncate用法與均值平滑相同,依我看設置上就行。
例子:用我自己胡亂設置的卷積核對我和校草的圖像進行處理:

pro picture_process fn=dialog_pickfile(title='') if fn eq !null then return img=read_image(fn) kernel = [ [[0,1,0],[-1,0,1],[0,-1,0]],[[0,1,0],$[-1,0,1],[0,-1,0]],[[0,1,0],[-1,0,1],[0,-1,0]] ] img1=convol(img,kernel) result=image(img1) end

這里卷積核設置復雜的原因也是因為三維圖像要設置不同波段上的卷積核。這也是第二章節銳化里面無法對彩色圖像進行處理的原因。

大家變成了留學生,洋大人。
4.圖像裁剪
沒有啥函數(如果不用envi接口,用的話有的)

subraster=envisubsetraster(input_raster,sub_rect=[x1,y1,x2,y2]) ;調用envi接口進行空間裁剪
徐永明的書寫了,就是取一個空間子集:
img_clip=img[*,0:100,0:100]
下面對我和校草的圖片進行空間裁剪:

pro picture_process fn=dialog_pickfile(title='') if fn eq !null then return img=read_image(fn) result=image(img[*,0:300,0:300]) end


5.圖像重采樣
rebin()可以修改數組的大小,行列數必須是原來的整數倍!
變大時會插值,默認算法雙線性內插法,/sample關鍵字設置為最近鄰域。
congrid()將數組調整成同維數任意大小,一維和二維數組默認算法最近鄰域法,三維時采用雙線性內插法,關鍵字/interp為雙線性內插法,/cubic為三重卷積內插法。
在縮小數組的時候,如果使用rebin函數,則會進行插值處理,如果使用congrid函數則僅僅進行重采樣。
下面對我和校草的圖像進行重采樣:

pro picture_process fn=dialog_pickfile(title='') if fn eq !null then return img=read_image(fn) img1=congrid(img,3,400,400,/interp) result=image(img1) end


變瘦,舍友高興非常。
6.圖像的轉置(可以用于波段變換)
result=transpose(img,[P])
img是輸入的圖像,[P]是設置的轉置方式,就是誰在前誰在后??梢杂糜谵D換波段順序。
例如某影像有三個波段,bsq排列的:[3,600,600]
可以寫:result=transpose(data,[1,0,2])
這樣子就是把原本在中間的600排在第一,把3排在第二,把最后的600還是排在第二,變為:[600,3,600] 這樣子就變為BIL

總結

以上是生活随笔為你收集整理的IDL(彩色)图像处理(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。