① 純C語言實現圖像處理
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define ONE 255
#define ZERO 0
/*
typedef struct tagBITMAPFILEHEADER { // bmfh
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER{ // bmih
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
*/
void main (int argc,char *argv[])
{
FILE *fi,*fo;//I/O file
char fin[80],fon[80];//I/O file name
unsigned char **ri,**ro;
unsigned char buff;
long w,h;
int t;
int i,j;
if(argc<3)
{
printf("orginfile name:");
scanf("%s",fin);
printf("resultfile name:");
scanf("%s",fon);
}else{
sscanf(argv[1],"%s",fin);
sscanf(argv[2],"%s",fon);
}
if(argc==4)
sscanf(argv[4],"%d",&t);
else{
printf("theshold [0,255]:");
scanf("%d",&t);
}
if (((fi=fopen(fin,"rb"))==NULL)||((fo=fopen(fon,"wb"))==NULL))
{
puts("\nfile open failed");
return;
}
fseek(fi,18L,SEEK_SET);
fread(&w,sizeof(long),1,fi);
fread(&h,sizeof(long),1,fi);
fseek(fi,0L,SEEK_SET);
ri=(unsigned char **)malloc(sizeof(unsigned *)*h);
for (i=0;i<h;i++)
*(ri+i)=(unsigned char *)malloc(sizeof(unsigned)*w);
ro=(unsigned char **)malloc(sizeof(unsigned *)*h);
for (i=0;i<h;i++)
*(ro+i)=(unsigned char *)malloc(sizeof(unsigned)*w);
//分配失敗後果自負!
for (i=0;i<32;i++){
fread(&buff,sizeof(buff),1,fi);
fwrite(&buff,sizeof(buff),1,fo);}
for (i=0;i<h;i++)
for (j=0;j<w;j++)
fread(*(ri+i)+j,sizeof(unsigned char),1,fi);
for (i=0;i<h;i++)
for (j=0;j<w;j++)
*(*(ro+i)+j)=((*(*(ri+i)+j)<=t)?ZERO:ONE);
for (i=0;i<h;i++)
for (j=0;j<w;j++)
fwrite(*(ro+i)+j,sizeof(unsigned char),1,fo);
fclose(fo);
}
② (急)數字圖像處理主要包含哪八個方面的內容
主要內容有:圖像增強、圖像編碼、圖像復原、圖像分割、圖像分類、圖像重建、圖像信息的輸出和顯示。
圖像增強用於改善圖像視覺質量;圖像復原是盡可能地恢復圖像本來面目;圖像編碼是在保證圖像質量的前提下壓縮數據,使圖像便於存儲和傳輸;圖像分割就是把圖像按其灰度或集合特性分割成區域的過程。
圖像分類是在將圖像經過某些預處理(壓縮、增強和復原)後,再將圖像中有用物體的特徵進行分割,特徵提取,進而進行分類;圖像重建是指從數據到圖像的。處理,即輸入的是某種數據,而經過處理後得到的結果是圖像。
(2)圖像重建演算法c語言擴展閱讀
發展概況
數字圖像處理最早出現於20世紀50年代,當時的電子計算機已經發展到一定水平,人們開始利用計算機來處理圖形和圖像信息。數字圖像處理作為一門學科大約形成於20世紀60年代初期。
早期的圖像處理的目的是改善圖像的質量,它以人為對象,以改善人的視覺效果為目的。圖像處理中,輸入的是質量低的圖像,輸出的是改善質量後的圖像,常用的圖像處理方法有圖像增強、復原、編碼、壓縮等。首次獲得實際成功應用的是美國噴氣推進實驗室(JPL)。
他們對航天探測器徘徊者7號在1964年發回的幾千張月球照片使用了圖像處理技術,如幾何校正、灰度變換、去除雜訊等方法進行處理,並考慮了太陽位置和月球環境的影響,由計算機成功地繪制出月球表面地圖,獲得了巨大的成功。
隨後又對探測飛船發回的近十萬張照片進行更為復雜的圖像處理,以致獲得了月球的地形圖、彩色圖及全景鑲嵌圖,獲得了非凡的成果,為人類登月創舉奠定了堅實的基礎,也推動了數字圖像處理這門學科的誕生。
在以後的宇航空間技術,如對火星、土星等星球的探測研究中,數字圖像處理技術都發揮了巨大的作用。數字圖像處理取得的另一個巨大成就是在醫學上獲得的成果。