- 相關(guān)推薦
DSP技術(shù)實(shí)習(xí)報(bào)告
一 、實(shí)習(xí)題目
1、 灰度線性變換
2、 灰度的對(duì)數(shù)變換
3、 鋸齒波變換
4、 圖像剪取
二 、實(shí)習(xí)目的:
1、 鞏固和深化數(shù)字圖像處理技術(shù)所涉及的數(shù)理基礎(chǔ)、基本算法和各種圖像處理技術(shù)方法,學(xué)習(xí)和掌握?qǐng)D像變換。
2、 對(duì)學(xué)習(xí)圖像處理的基礎(chǔ)知識(shí)對(duì)其應(yīng)用工程實(shí)踐有一定的認(rèn)識(shí),提高學(xué)生對(duì)應(yīng)用軟件的使用能力。
3、 通過(guò)理論聯(lián)系實(shí)際,綜合運(yùn)用所學(xué)知識(shí),提高學(xué)生獨(dú)立分析和解決實(shí)際問(wèn)題的能力,增強(qiáng)學(xué)生的工程意識(shí),打好專業(yè)基礎(chǔ)
三、實(shí)習(xí)要求:
1、能夠根據(jù)設(shè)計(jì)題目要求查閱檢索有關(guān)的文獻(xiàn)資料,結(jié)合題目選學(xué)有關(guān)參考書(shū);
2、熟悉計(jì)算機(jī)圖像處理的設(shè)計(jì)方法;
3、熟悉圖像灰度變換程序的設(shè)計(jì)方法;
4、掌握?qǐng)D像灰度變換的仿真方法;
5、完成圖像的灰度變換。
四、系統(tǒng)原理描述:
灰度變換將輸入圖像映射為輸出圖像,輸出圖像每個(gè)像素點(diǎn)的灰度值僅由對(duì)應(yīng)的輸入像素點(diǎn)的值決定。它常用于改變圖像的灰度范圍及分布,是圖像數(shù)字化及圖像顯示的重要工具;叶茸儞Q因其作用性質(zhì)有時(shí)也被稱為對(duì)比度增強(qiáng)、對(duì)比度拉伸或點(diǎn)運(yùn)算,稱之為灰度變換。
灰度變換實(shí)際上是灰度到灰度的映射過(guò)程。設(shè)輸入圖像為A(x,y)輸出圖像為B(x,y),則灰度變換可表示為:
即灰度變換完全由灰度映射函數(shù)決定。顯然灰度變換不會(huì)改變圖像內(nèi)像素點(diǎn)之間的空間關(guān)系。
1. 灰度線性變換
設(shè)圖像灰度值f(x,y)的可能值域?yàn)镈,但在一定條件下,使得其取值范圍縮小為且如圖 7-11所示,這種狀態(tài)常出現(xiàn)于連續(xù)圖f(x,y)值的動(dòng)態(tài)范圍小,或攝影曝光不足中,因而其對(duì)應(yīng)的直方圖P (D)如圖所示,集中于某個(gè)較小的灰度區(qū)間內(nèi)。但是通常人們希望灰度直方圖在全部灰度區(qū)域內(nèi)均勻分布,最簡(jiǎn)單地是把低反差圖像進(jìn)行灰度變換得到高反差圖像,即線性變換,如下式:
該式可以使變換后的灰度的取值范圍擴(kuò)大到
一般來(lái)說(shuō),只有當(dāng)兩個(gè)相鄰像素的灰度值(亮度值)相差到一定程度時(shí),人的視覺(jué)才能分辨。若灰度值D僅在較小區(qū)間內(nèi)時(shí),則人眼可分辨的亮度差的總級(jí)數(shù)則亦很少,從而造成目標(biāo)圖像灰度值與背景灰度值相接近,人眼而無(wú)法分辨檢出。而對(duì)其進(jìn)行的變換后,則如上圖可使變得更大,從而使得視覺(jué)上對(duì)變換后圖像能夠分辨的亮度差的總級(jí)數(shù)增加,造成目標(biāo)圖像與背景間亮度差異的加大,使原先無(wú)法被人眼檢出的目標(biāo)圖像也能檢出,且變換后圖像清晰度也大大提高。
2. 灰度的對(duì)數(shù)變換
對(duì)數(shù)變換常用來(lái)擴(kuò)展低值灰度,而壓縮高值灰度,這樣可以使低值灰度的圖像細(xì)節(jié)更容易看清楚,對(duì)數(shù)變換的表達(dá)式為:
其中K為一根據(jù)圖像內(nèi)容來(lái)確定的常數(shù)因子。
3. 鋸齒波變換
這種方法常用來(lái)在動(dòng)態(tài)范圍較小的顯示器上顯示動(dòng)態(tài)范圍較大的圖像,或者用來(lái)發(fā)現(xiàn)圖像中基本輪廓,變換曲線如圖所示。
4. 圖像剪取
對(duì)于灰度圖像f,設(shè)定一個(gè)閾值t,若f(i,j) t,則f(i,j)的值保持不變。處理后的圖像仍然是灰度圖像,只不過(guò)閾值t以下的像素被置0。
五、方案論證及系統(tǒng)設(shè)計(jì)
六、系統(tǒng)程序的設(shè)計(jì)
1、灰度線性變換
#include
#include
#include "imagelib.h"
//添加圖像和視頻處理庫(kù)頭文件
#include "imagesample.h"
//添加圖像例子頭文件,
//包含原始的圖像文件goldhill[128][128]
#define MAX_PIXEL_VALUE 256
//包含原始圖像像素的最大灰度值
#define WIDTH 128
#define HEIGHT 128
//原始圖像行和列的像素?cái)?shù)
int my_result[256];
//保存自編函數(shù)得到的灰度圖結(jié)果的數(shù)組
short histogram_output[256];
//保存調(diào)用庫(kù)函數(shù)得到的灰度圖結(jié)果的數(shù)組
short my_threshold_val=175;
//short my_threshold_val=127;
//閾值的設(shè)定
void my_histogram();
//聲明自編灰度圖算法顯示函數(shù)
void main( )
{
int i;
int my_size;
short *input;
my_size = WIDTH*HEIGHT;
//計(jì)算所有像素點(diǎn)數(shù)
input = &goldhill[0][0];
//獲取原始圖像的首地址
for(i= 0;i< MAX_PIXEL_VALUE;i++) histogram_output[i]= 0;
IMG_histogram(input,histogram_output,my_size);
//調(diào)用image.lib庫(kù)函數(shù)實(shí)現(xiàn)灰度圖顯示
my_histogram();
//自編C語(yǔ)言算法程序?qū)崿F(xiàn)灰度圖顯示
IMG_threshold( &goldhill[0][0],&goldhill[0][0],WIDTH ,HEIGHT, my_threshold_val );
//調(diào)用image.lib庫(kù)函數(shù)實(shí)現(xiàn)閾值處理與顯示
while(1);
}
void my_histogram()
{
int za=10,zb=235,i,j,z1=0,z2=255,zzba;
short (*p)[128];
//定義了一個(gè)指針變量p,
//指向了一個(gè)包含128個(gè)元素的一維數(shù)組,
//即行指針變量p
p=goldhill;
zzba=(z2-z1)/(float)(zb-za);
//獲取原始圖像的首地址
// for(i=0;i<256;i++) my_result[i]=0;
for (i=0;i<128;i++)
{ for (j=0;j<128;j++)
{
if(*(*(p+i)+j)<=za)*(*(p+i)+j)=z1;
else{
if(*(*(p+i)+j)>=zb)*(*(p+i)+j)=z2;
else *(*(p+i)+j)=zzba*(*(*(p+i)+j)-za)+z1+0.5;
}
// k=*(*(p+i)+j);
// my_result[k]++;
}
}
//自編灰度直方圖算法顯示函數(shù)
}
2、灰度的對(duì)數(shù)變換
#include
#include
#include "imagelib.h"
//添加圖像和視頻處理庫(kù)頭文件
#include "imagesample.h"
//添加圖像例子頭文件,
//包含原始的圖像文件goldhill[128][128]
#define MAX_PIXEL_VALUE 256
//包含原始圖像像素的最大灰度值
#define WIDTH 128
#define HEIGHT 128
#define ZERO 0
//原始圖像行和列的像素?cái)?shù)
int my_result[256];
//保存自編函數(shù)得到的灰度直方圖結(jié)果的數(shù)組
short histogram_output[256];
//保存調(diào)用庫(kù)函數(shù)得到的灰度直方圖結(jié)果的數(shù)組
short my_threshold_val=175;
//short my_threshold_val=127;
//閾值的設(shè)定
void my_histogram();
//聲明自編灰度直方圖算法顯示函數(shù)
void main( )
{
int i;
int my_size;
short *input;
my_size = WIDTH*HEIGHT;
//計(jì)算所有像素點(diǎn)數(shù)
input = &goldhill[0][0];
//獲取原始圖像的首地址
for(i= 0;i< MAX_PIXEL_VALUE;i++) histogram_output[i]= 0;
IMG_histogram(input,histogram_output,my_size);
//調(diào)用image.lib庫(kù)函數(shù)實(shí)現(xiàn)灰度直方圖顯示
my_histogram();
//自編C語(yǔ)言算法程序?qū)崿F(xiàn)灰度直方圖顯示
IMG_threshold( &goldhill[0][0],&goldhill[0][0],WIDTH ,HEIGHT, my_threshold_val );
//調(diào)用image.lib庫(kù)函數(shù)實(shí)現(xiàn)閾值處理與顯示
while(1);
}
void my_histogram()
{
int i,j;
double za=2,zb=128,z1=0,z2=255,fij,gij,zzlba;
short (*p)[128];
//定義了一個(gè)指針變量p,
//指向了一個(gè)包含128個(gè)元素的一維數(shù)組,
//即行指針變量p
p=goldhill;
zzlba=(z2-z1)/(double)(log(zb)-log(za));
//獲取原始圖像的首地址
// for(i=0;i<256;i++) my_result[i]=0;
//初始化灰度直方圖結(jié)果數(shù)組
for (i=0;i<128;i++)
{ for (j=0;j<128;j++)
/* log transform.*/
{
fij=*(*(p+i)+j);
if(fij==0)fij=0.001;
gij=zzlba*(log(fij)-log(za))+z1;
*(*(p+i)+j)=gij+0.5;
}
}
// k=*(*(p+i)+j);
// my_result[k]++;
}
3、鋸齒波變換
#include
#include
#include "imagelib.h"
//添加圖像和視頻處理庫(kù)頭文件
#include "imagesample.h"
//添加圖像例子頭文件,
//包含原始的圖像文件goldhill[128][128]
#define MAX_PIXEL_VALUE 256
//包含原始圖像像素的最大灰度值
#define WIDTH 128
#define HEIGHT 128
//原始圖像行和列的像素?cái)?shù)
int my_result[256];
//保存自編函數(shù)得到的灰度直方圖結(jié)果的數(shù)組
short histogram_output[256];
//保存調(diào)用庫(kù)函數(shù)得到的灰度直方圖結(jié)果的數(shù)組
short my_threshold_val=175;
//short my_threshold_val=127;
//閾值的設(shè)定
void my_histogram();
//聲明自編灰度直方圖算法顯示函數(shù)
void main( )
{
int i;
int my_size;
short *input;
my_size = WIDTH*HEIGHT;
//計(jì)算所有像素點(diǎn)數(shù)
input = &goldhill[0][0];
//獲取原始圖像的首地址
for(i= 0;i< MAX_PIXEL_VALUE;i++) histogram_output[i]= 0;
IMG_histogram(input,histogram_output,my_size);
//調(diào)用image.lib庫(kù)函數(shù)實(shí)現(xiàn)灰度直方圖顯示
my_histogram();
//自編C語(yǔ)言算法程序?qū)崿F(xiàn)灰度直方圖顯示
IMG_threshold(&goldhill[0][0],&goldhill[0][0],WIDTH,HEIGHT, my_threshold_val );
//調(diào)用image.lib庫(kù)函數(shù)實(shí)現(xiàn)閾值處理與顯示
while(1);
}
void my_histogram()
{
int i,j;
float lwidth=128,ratio=128,gg=235;
short (*p)[128];
//定義了一個(gè)指針變量p,
//指向了一個(gè)包含128個(gè)元素的一維數(shù)組,
//即行指針變量p
p=goldhill;
//獲
[DSP技術(shù)實(shí)習(xí)報(bào)告]相關(guān)文章:
1.DSP技術(shù)實(shí)習(xí)報(bào)告
2.學(xué)生認(rèn)知實(shí)習(xí)報(bào)告
【DSP技術(shù)實(shí)習(xí)報(bào)告】相關(guān)文章:
技術(shù)實(shí)習(xí)報(bào)告07-26
技術(shù)測(cè)量實(shí)習(xí)報(bào)告07-02
建筑技術(shù)實(shí)習(xí)報(bào)告01-04
通信技術(shù)實(shí)習(xí)報(bào)告03-09
測(cè)控技術(shù)實(shí)習(xí)報(bào)告02-14
通信技術(shù)實(shí)習(xí)報(bào)告06-28
想在北京的日企做dsp或java的實(shí)習(xí)生,大家來(lái)點(diǎn)意見(jiàn)07-03