1. 程式人生 > >MATLAB實現影象灰度歸一化

MATLAB實現影象灰度歸一化

在許多影象處理系統中,對影象進行歸一化都是必備的預處理過程。一般而言,對於灰度影象(或彩色通道的每個顏色分量)進行灰度歸一化就是:使其畫素的灰度值分佈在0~255之間,避免影象對比度不足(影象畫素亮度分佈不平衡)從而對後續處理帶來干擾。

一種常見的影象歸一化原理1是y=(x-MinValue)/(MaxValue-MinValue)
其中x、y分別為歸一化前、歸一化後的值,MaxValue、MinValue分別為原始影象灰度的最大值和最小值。

原始碼示例(這裡包含了三種方法:前兩種是程式設計實現2,最後一種直接呼叫MATLAB函式來實現3,大家可以參考):

oriImage = imread('XXXX.jpg'
); grayImage = rgb2gray(oriImage); figure; imshow(grayImage); originalMinValue = double(min(min(grayImage))); originalMaxValue = double(max(max(grayImage))); originalRange = originalMaxValue - originalMinValue; % Get a double image in the range 0 to +255 desiredMin = 0; desiredMax = 255; desiredRange = desiredMax - desiredMin; dblImageS255 = desiredRange * (double(grayImage) - originalMinValue) / originalRange + desiredMin; figure; imshow(uint8(dblImageS255)); % Get a double image in the range 0 to +1
desiredMin = 0; desiredMax = 1; desiredRange = desiredMax - desiredMin; dblImageS1 = desiredRange * (double(grayImage) - originalMinValue) / originalRange + desiredMin; figure; imshow(dblImageS1); % Another way to normalazation, which only calls MATLAB function img3 = mat2gray(oriImage); figure; imshow(img3);

上述原始碼已在MATLAB 2014和MATLAB 2016上通過測試。

原始圖片:
這裡寫圖片描述

執行後的效果:
這裡寫圖片描述

注意:如果在自己的圖片上希望看到直觀的效果,請模仿示例預先將測試圖片的對比度調低一些,讓影象中各個畫素點的灰度分佈範圍不足 0-255。

相關推薦

MATLAB實現影象

在許多影象處理系統中,對影象進行歸一化都是必備的預處理過程。一般而言,對於灰度影象(或彩色通道的每個顏色分量)進行灰度歸一化就是:使其畫素的灰度值分佈在0~255之間,避免影象對比度不足(影象畫素亮度分佈不平衡)從而對後續處理帶來干擾。 一種常見的影象歸一化原

theano 實現影象區域性對比度

很多時候我們需要對影象進行區域性對比度歸一化,比如分塊CNN的預處理階段。theano對此提供了一些比較方便的操作。 區域性歸一化的一種簡單形式為: 其中μ和σ分別為區域性(例如3x3的小塊)的均值和標準差。 利用程式碼說明一下如何實現: import theano i

影象匹配之積相關匹配——opencv

#include<opencv2/opencv.hpp> #include<opencv2/highgui.hpp> #include<iostream> using namespace std; using namespac

MATLAB實現資料 [0,1]

記錄一下,在做機器學習時,資料處理部分要花很多精力。資料處理的方式有很多種,今天記錄的是[0,1]歸一化,該法可以避免在較大數值範圍內的特性凌駕於較小數值範圍內的特性,先看下原理。 設序列代表特性A,對它們進行變換 則得到的新序列 下面看程式碼: clc clear all %

MATLAB影象線性變換

下面重點介紹一下如何用MATLAB對影象進行灰度線性變換,具體如下: 1、開啟MATLAB主介面,在其中的編輯器中寫入下列程式碼,其中I=imread('G:\MATLAB練習\bm.bmp');此程式碼是讀入圖片的語句,也就是我們想要處理的圖片,這裡我是存放在G盤的MATLAB練習資料夾中,名

數字影象處理之方法

1.把數變為(0,1)之間的小數 為了資料處理方便提出來的,把資料對映到0~1範圍之內處理,更加便捷快速 例1:{2.5 3.5 0.5 1.5}歸一化後變成了{0.3125 0.4375 0.0625 0.1875} 解法:2.5+3.5+0.5+1.5=8;   2.5

【CV】影象標準化與

使用深度學習在進行影象分類或者物件檢測時候,首先需要對影象做資料預處理,最常見的對影象預處理方法有兩種,正常白化處理又叫影象標準化處理,另外一種方法叫做歸一化處理,下面就詳細的說一下這兩種處理方法。 一:影象標準化處理 標準化處理的公式如下: tensorflo

OpenCV對影象的光照處理

#include <cv.h>#include <highgui.h>#include <stdio.h>#include <string>usingn

影象匹配 | NCC 互相關損失 | 程式碼 + 講解

- 文章轉載自:微信公眾號「機器學習煉丹術」 - 作者:煉丹兄(已授權) - 作者聯絡方式:微信cyx645016617(歡迎交流共同進步) 本次的內容主要講解NCC**Normalized cross-correlation** 歸一化互相關。 兩張圖片是否是同一個內容,現在深度學習的方案自然是用神經網

在OpenCV環境下寫的影象二維傅立葉換,幅值計算,頻譜平移和將數值到0到255區間的四個函式

影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"qxsf321",並關注! 影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"qxsf321",並關注! 影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋

直方圖 Matlab

    影象直方圖描述的是影象各個灰度級的統計特性,他表示影象每一灰度級與該灰度級出現頻率的對應關係,因為灰度級不是連續的,自然,灰度直方圖是一個離散函式。橫座標是灰度級g,縱座標是Ng,如果總的畫素

C++ 實現matlab資料函式mapminmax

matlab驗證了我的資料處理方法,今天換成了c++版,實現matlab的mapminmax()函式。程式碼如下: void normalize(float *data) { int datamax = 1; //設定歸一化的範圍 int datamin = 0;

MATLAB:虹膜識別的影象處理,直方圖均衡化

(1)影象灰度化處理: 讀取一張圖片之後,進行灰度化處理,然後對其進行直方圖均值化。 clear;close all %讀取原圖地址 RGB= imread('D:\img\1.jpg'); %影象灰度化處理 GRAY = rgb2gray(RGB); % 直方圖均衡化:Histogr

資料matlab及python 實現

歸一化的目的簡而言之,是使得沒有可比性的資料變得具有可比性,同時又保持相比較的兩個資料之間的相對關係。 歸一化首先在維數非常多的時候,可以防止某一維或某幾維對資料影響過大,其次可以程式可以執行更快。 資料歸一化應該針對屬性,而不是針對每條資料,針對每條資

OpenCV學習筆記(1)——resize函式實現影象大小

在影象處理過程中,有時需要把影象調整到同樣大小,便於處理,這時需要用到影象resize() 原函式void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, in

機器學習(附Python實現原始碼)

# -*- coding: utf-8 -*- import inspect import math import numpy as np from sklearn import preprocessing def max_min_normalization(data_list):

句子相似比較的

我們將不同長度的句子(預處理並分詞之後的長度)直接做比較其實是不公平的,舉個例子:   Sentence 1 =  長度為2 Sentence 2 = 長度為1 Sentence 3 = 長度為3 (在取相似詞TOP4,exp=0.7,的情況下) 即便Sent2與Sent1詞的

Matlab 函式premnmx

(1)基本演算法:函式目的是把資料處理成[-1,1]之間,演算法是: 如a=[2,4,3,5],那麼計算過程就是: 2*(2-2)/(5-2)-1=-1; 2*(4-2)/(5-2)-1=1/3=0.6666; 2*(3-2)/(5-2)-1=-0.6666 2*(5-2)/(5-2

基於深度學習的CT影象肺結節自動檢測技術——資料預處理(,資料增強,資料標記)

開發環境 Anaconda:jupyter notebook /pycharm pip install SimpleItk # 讀取CT醫學影象 pip install tqdm # 可擴充套件的Python進度條,封裝

幾種方法(Normalization Method)python實現

資料歸一化問題是資料探勘中特徵向量表達時的重要問題,當不同的特徵成列在一起的時候,由於特徵本身表達方式的原因而導致在絕對數值上的小資料被大資料“吃掉”的情況,這個時候我們需要做的就是對抽取出來的features vector進行歸一化處理,以保證每個特徵被分類器平等對待。