1. 程式人生 > >matlab簡單影象預處理

matlab簡單影象預處理

轉自https://blog.csdn.net/renyp8799/article/details/51191692,很實用的簡單操作,適合影象處理初學者

一、影象反轉

  1. I=imread('input_image.jpg');  
  2. J=double(I);  
  3. J=-J+(256-1); %影象反轉線性變換  
  4. H=uint8(J);  
  5. subplot(3,3,4),imshow(H);  
  6. title('影象反轉線性變換');  
  7. axis([50,250,50,200]);  
  8. axis on;  

二、灰度線性變換
  1. I=imread('input_image.jpg');  
  2. subplot(3,3,1),imshow(I);  
  3. title('原始影象');  
  4. axis([50,250,50,200]);  
  5. axis on;  
  6. I1 = rgb2gray(I);  
  7. subplot(3,3,2),imshow(I1)  
  8. title('灰度影象')  
  9. axis([50,250,50,200]);  
  10. grid on;  
  11. axis on;  
  12. K=imadjust(I1,[0.3 0.7],[]);  
  13. subplot(3,3,3),imshow(K);  
  14. title('線性變換影象[0.3 0.7]');  
  15. axis([50,250,20,200]);  
  16. grid on;  
  17. axis on;  
三、非線性變換
  1. I=imread('input_image.jpg');  
  2. I1 = rgb2gray(I);  
  3. subplot(3,3,5),imshow(I1);  
  4. title('灰度影象');  
  5. axis([50,250,50,200]);  
  6. grid on; %顯示網格線  
  7. axis on; %顯示座標系  
  8. J=double(I1);  
  9. J=40*(log(J+1));  
  10. H=uint8(J);  
  11. subplot(3,3,6),imshow(H);  
  12. title('對數變換影象');  
  13. axis([50,250,50,200]);  
  14. grid on; %顯示網格線  
  15. axis on; %顯示座標系  

上述程式碼結果:


四、直方圖均衡化
  1. I=imread('input_image.jpg');  
  2. figure;  
  3. I=rgb2gray(I);  
  4. subplot(2,2,1);  
  5. imshow(I);  
  6. subplot(2,2,2);  
  7. imhist(I);  
  8. title('直方圖均衡化影象');  
  9. I1 = histeq(I);  
  10. subplot(2,2,3);  
  11. imshow(I1);  
  12. subplot(2,2,4);  
  13. imhist(I1);  

上述程式碼結果:


五、線性平滑濾波器
  1. I=imread('input_image.jpg');  
  2. figure;  
  3. subplot(231)  
  4. imshow(I)  
  5. title('原始影象')  
  6. I=rgb2gray(I);  
  7. I1=imnoise(I,'salt & pepper',0.02);  
  8. subplot(232)  
  9. imshow(I1)  
  10. title('新增椒鹽噪聲的影象')  
  11. k1=filter2(fspecial('average',3),I1)/255; %進行3*3模板平滑濾波  
  12. k2=filter2(fspecial('average',5),I1)/255; %進行5*5模板平滑濾波  
  13. k3=filter2(fspecial('average',7),I1)/255; %進行7*7模板平滑濾波  
  14. k4=filter2(fspecial('average',9),I1)/255; %進行9*9模板平滑濾波  
  15. subplot(233),imshow(k1);title('3*3模板平滑濾波');  
  16. subplot(234),imshow(k2);title('5*5模板平滑濾波');  
  17. subplot(235),imshow(k3);title('7*7模板平滑濾波');  
  18. subplot(236),imshow(k4);title('9*9模板平滑濾波');  

上述程式碼結果:


六、中值濾波器
  1. figure;  
  2. I=imread('input_image.jpg');  
  3. I=rgb2gray(I);  
  4. subplot(231),imshow(I);  
  5. title('原影象');  
  6. J=imnoise(I,'salt & pepper',0.02);  
  7. subplot(232),imshow(J);  
  8. title('新增椒鹽噪聲影象');  
  9. k1=medfilt2(J); %進行3*3模板中值濾波  
  10. k2=medfilt2(J,[5,5]); %進行5*5模板中值濾波  
  11. k3=medfilt2(J,[7,7]); %進行7*7模板中值濾波  
  12. k4=medfilt2(J,[9,9]); %進行9*9模板中值濾波  
  13. subplot(233),imshow(k1);title('3*3模板中值濾波');  
  14. subplot(234),imshow(k2);title('5*5模板中值濾波');  
  15. subplot(235),imshow(k3);title('7*7模板中值濾波');  
  16. subplot(236),imshow(k4);title('9*9模板中值濾波');  

上述程式碼結果:


七、用Sobel運算元和拉普拉斯對影象銳化
  1. figure;  
  2. I=imread('input_image.jpg');  
  3. subplot(2,2,1),imshow(I);  
  4. title('原始影象');  
  5. axis([50,250,50,200]);  
  6. grid on; %顯示網格線  
  7. axis on; %顯示座標系  
  8. I1=im2bw(I);  
  9. subplot(2,2,2),imshow(I1);  
  10. title('二值影象');  
  11. axis([50,250,50,200]);  
  12. grid on; %顯示網格線  
  13. axis on; %顯示座標系  
  14. H=fspecial('sobel'); %選擇sobel運算元  
  15. J=filter2(H,I1); %卷積運算  
  16. subplot(2,2,3),imshow(J);  
  17. title('sobel運算元銳化影象');  
  18. axis([50,250,50,200]);  
  19. grid on; %顯示網格線  
  20. axis on; %顯示座標系  
  21. I1 = double(I1);  
  22. h=[0 1 0,1 -4 1,0 1 0]; %拉普拉斯運算元  
  23. J1=conv2(I1,h,'same'); %卷積運算  
  24. subplot(2,2,4),imshow(J1);  
  25. title('拉普拉斯運算元銳化影象');  
  26. axis([50,250,50,200]);  
  27. grid on; %顯示網格線  
  28. axis on; %顯示座標系  

上述程式碼結果:


八、梯度運算元檢測邊緣
  1. figure;  
  2. I=imread('input_image.jpg');  
  3. subplot(2,3,1);  
  4. imshow(I);  
  5. title('原始影象');  
  6. axis([50,250,50,200]);  
  7. grid on; %顯示網格線  
  8. axis on; %顯示座標系  
  9. I1=im2bw(I);  
  10. subplot(2,3,2);  
  11. imshow(I1);  
  12. title('二值影象');  
  13. axis([50,250,50,200]);  
  14. grid on; %顯示網格線  
  15. axis on; %顯示座標系  
  16. I2=edge(I1,'roberts');  
  17. subplot(2,3,3);  
  18. imshow(I2);  
  19. title('roberts運算元分割結果');  
  20. axis([50,250,50,200]);  
  21. grid on; %顯示網格線  
  22. axis on; %顯示座標系  
  23. I3=edge(I1,'sobel');  
  24. subplot(2,3,4);  
  25. imshow(I3);  
  26. title('sobel運算元分割結果');  
  27. axis([50,250,50,200]);  
  28. grid on; %顯示網格線  
  29. axis on; %顯示座標系  
  30. I4=edge(I1,'Prewitt');  
  31. subplot(2,3,5);  
  32. imshow(I4);  
  33. title('Prewitt運算元分割結果');  
  34. axis([50,250,50,200]);  
  35. grid on; %顯示網格線  
  36. axis on; %顯示座標系  
九、LOG運算元檢測邊緣
  1. I1=rgb2gray(I);  
  2. 相關推薦

    matlab簡單影象處理

    轉自https://blog.csdn.net/renyp8799/article/details/51191692,很實用的簡單操作,適合影象處理初學者一、影象反轉I=imread('input_image.jpg');  J=double(I);  J=-J+(256-1

    matlab實現影象處理的很多方法

    RGB = imread('sy.jpg');                     % 讀入影象 imshow(RGB),                                  % 顯示原始影象 GRAY = rgb2gray(RGB);                          %

    matlab影象處理中值濾波y與雙邊濾波

    中值濾波 前面所說的高斯平滑和均值濾波也是預處理的一種,不過他們用犧牲影象細節為代價來換取平滑影象,他們對處理小的噪聲點比較好,但是處理較大的噪聲點比較無力。 平滑線性濾波器的工作原理可以比喻為用水沖洗桌面上的汙點,沖洗的結果是汙點並沒有消失,只是被淡化,如果汙

    ocr影象處理-影象分割、文字方向校正

    說明:文字方向校正(fft方式和放射變換方式)參考了網上的程式碼,只做了少量修改 只針對醫療影像影象,自然場景下的另說 因為處理的影象都很大很大,居然有11000*12000這種解析度的,有90M大小,我也是醉了,絕大部分都是6000左右解析度的影象,這種影象直接送到CTPN裡的話,

    資料科學和人工智慧技術筆記 四、影象處理

    四、影象預處理 作者:Chris Albon 譯者:飛龍 協議:CC BY-NC-SA 4.0 影象二值化 # 載入庫 import cv2 import numpy as np from matplotlib import pyplot as plt

    tf.data.Dataset影象處理詳解

    目錄 1、tf.data.Dataset 2、Dataset常用函式 3、影象預處理的第一種方式 3.1、匯入依賴庫 3.2、定義常量 3.3、讀取文字中的圖片標籤對 3.4、例項化Dataset並完成影象預處理

    pytorch 目標檢測 影象處理

    Faster RCNN 和Retinanet在將影象資料輸送到網路之前,要對影象資料進行預處理。大致上與部落格提到的相同。 事實上還可以採取第三步,將圖片的寬和高擴充套件為32的整倍數,正如在Retinanet使用的。下面是一個簡單的Pytorch資料預處理模組: class Resizer():

    影象處理 | 【附高清經典影象處理書籍下載】

    概述: 1)預處理是指處於最低抽象層次的影象上所進行的操作,這時處理的輸入和輸出都是亮度影象。 2)預處理並不會增加影象的資訊量預處理有助於抑制與特殊的影象處理或分析任務無關的資訊。因此預處理的目的是改善影象資料,抑制不需要的變形或者增強某些對於後續處理重要的影象特徵。 影象預處理方

    計算機視覺基礎~影象處理(中)

    5.1梯度Prewitt濾波/卷積  水平梯度/垂直邊緣  垂直梯度/水平邊緣 5.2梯度Sobel濾波/卷積  梯度Sobel濾波/卷積  垂直梯度/水平邊緣 5.3梯度Laplacian濾波/卷積  二

    影象處理 && C實現

    之前用到的一些預處理整理,主要是影象增強和濾波演算法。 程式碼地址:https://github.com/WangLCG/Image_Process/tree/master/Image_enhance 1、直方圖均衡化 調整影象的灰度分佈使其能在0-255範圍內分佈更均衡,可用於提

    Tensorflow資料輸入---TFRecords詳解\TFRecords影象處理

    目錄 1、概述 2、預處理資料 2.1、常量定義 2.2、匯入庫 2.3、從train.txt檔案中讀取圖片-標籤對 2.4、預處理圖片並儲存 2.5、呼叫main函式 3、讀取預處理後的資料

    halcon影象處理影象增強

    影象增強一般通過如下幾種方式: 1. 灰度值線性變換 scale_image: g’ := g * Mult + Add g為當前的灰度值,Mult 為所乘的係數,Add為加的偏移值,由公式可以看出用scale_image來處理影象是個線性變化,會讓黑的地方更

    halcon影象處理影象銳化

    影象銳化是為了讓影象的邊界、輪廓線以及影象的細節變得清晰。可以用高通濾波器和空間域微分法使影象變得邊界變得清晰。但是要注意的是對影象銳化影象要有較高的信噪比,否則銳化後圖像信噪比更低。可以先對影象進行平滑後再銳化。 1. 空間域銳化(微分法) frei_amp

    openai/gym中的影象處理

    openai/gym中的影象預處理 之前讀強化學習的文章,提到對gym模擬器的影象進行預處理,每4張圖片生成一個(84,84,4)的tensor,但是在網上沒有搜到具體的實現,因此寫一個預處理的函式,用到了cv2,這個模組需要安裝opencv-python這個庫 步

    ResNet--影象處理

    152層的 Resnet的圖片輸入尺寸為224*224,那對於大多數情況,圖片的解析度都是大於這個數值,那麼該如何把圖片的尺寸裁剪到這樣一個尺寸,又如何進行資料增強呢? 第一,調整尺寸(Rescaling) 先將圖片較短的那條邊,隨機縮放到[256,480]這樣一個範圍內。注意,此時的圖片是等比

    【OpenCV筆記】影象處理

    void FillWhite(IplImage *pImage) { cvRectangle(pImage, cvPoint(0, 0), cvPoint(pImage->width, pImage->height), CV_RGB(255, 255, 255), CV_FILLE

    C++ Opencv——影象處理——濾波

    #include <opencv2/opencv.hpp> #include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #include <opencv2\imgproc\i

    Tensorflow影象處理(2)大小調整

    簡單的影象預處理,包含對影象的反轉和裁剪等基本操作,程式碼中有詳細註釋 #影象大小調整 import matplotlib.pyplot as plt image_raw_data=tf.gfile.FastGFile("pic/ma.jpg","rb").read()

    Tensorflow常見問題處理 TensorFlow 影象處理(一) 影象編解碼,影象尺寸調整 tensorflow(一):圖片處理 TensorFlow 處理圖片

    1、Tensorflow中影象處理函式(影象大小調整)   Tensorflow中影象處理函式(影象大小調整)   tensorflow入門之---------影象大小調整   TensorFlow 影象預處理(一) 影象編解碼,影象尺寸調整   Tensorflow針對不定尺寸的圖片讀寫tfreco

    影象處理、分析與機器視覺》(第4版)閱讀筆記——第五章 影象處理

    預處理不會增加影象的資訊量,一般會降低熵。因此,從資訊理論的角度看,最好的預處理是沒有預處理:避免(消除)預處理的最好途徑是著力於高質量的影象獲取。實際影象中的屬於一個物體的相鄰畫素通常具有相同的或類似的亮度值,因此如果一個失真了的畫素可以從影象中被挑出來,它也許就可以用其鄰接畫素的平均值來複原。