數(shù)字圖像灰度銳化彩色縮放綜合報告_第1頁
數(shù)字圖像灰度銳化彩色縮放綜合報告_第2頁
數(shù)字圖像灰度銳化彩色縮放綜合報告_第3頁
數(shù)字圖像灰度銳化彩色縮放綜合報告_第4頁
數(shù)字圖像灰度銳化彩色縮放綜合報告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)字圖像處理課程實驗報告 1.1灰度變換算法理論說明:在某些情況下,為了將圖像灰度級整個范圍或其中某一段擴展或壓縮到另一灰度范圍質(zhì)內(nèi),稱灰度的線性變換。(1)當(dāng)圖像曝光不充分,使區(qū)間小于區(qū)間,即:、可選用這樣的變換:通過這種變換,使得圖像灰度范圍從擴展到,實際上使曝光不充分的圖像中黑的更黑、白的更白,從而提高了圖像灰度的對比度。(2)若圖像的絕大部分灰度集中在之間,則用這樣的變換:這種變換實際上失去了一部分圖像的信息。(3)在某些情況下,為不失去信息,可采用部分壓縮,部分?jǐn)U展的分段變換的方法,如下圖所示。分段線性變換和灰度的線性變換有點類似,都用到了灰度的線性變換。但不同之處在于分段線性變換不

2、是完全的線性變換,而是分段進(jìn)行線性變換。將圖像灰度區(qū)間分成兩段乃至多段,分別作線性變換稱之為分段線性變換,如圖,分段線性變換的優(yōu)點是可以根據(jù)用戶的需要,拉伸特征物體的灰度細(xì)節(jié),相對抑制不感興趣的灰度級。圖中的(0,a),(a,b),(b,255)等變換區(qū)間邊界能通過鍵盤隨時做交換式輸入,因此,分段線性變換是非常靈活的。它的灰度變換函數(shù)如圖所示,函數(shù)表達(dá)式如下:式中,(a,c)和(b,d)是圖中兩個轉(zhuǎn)折點坐標(biāo)。該變換函數(shù)的運算結(jié)果是將原圖在a和b之間的灰度拉伸到c和d之間。通過選擇的拉伸某段灰度區(qū)間,能夠更加靈活地控制圖像灰度直方圖的分布,以改善輸出圖像量。如果一幅圖像灰度集中在較暗的區(qū)域而導(dǎo)致

3、圖像偏暗,可以用灰度拉伸功能來拉伸(斜率>1)物體灰度區(qū)間以改善圖像質(zhì)量;同樣如果圖像灰度集中在較亮的區(qū)域而導(dǎo)致圖像偏亮,也可以用灰度拉伸功能來壓縮(斜率<1)物體灰度區(qū)間以改善圖像質(zhì)量。線性灰度變換函數(shù)f(x)是一個一維線性函數(shù):Db=f(Da)=faDa+fb。式中fa為線性函數(shù)斜率,fb為線性函數(shù)在y軸的截距,Da表示輸入圖像的灰度,Db表示輸出圖像的灰度。當(dāng)fa>1時,輸出圖像的對比度將增大;當(dāng)fa<1時,輸出圖像的對比度將減小。當(dāng)fa=1且fb0時,操作僅使所有像素的灰度值上移或下移。當(dāng)fa<0時,暗區(qū)域?qū)⒆兞?,亮區(qū)域?qū)⒆儼?。?dāng)fa=1,fb=0時,輸入

4、圖像與輸出圖像相同。當(dāng)fa=-1,fb=255時,輸出圖像的灰度正好反轉(zhuǎn)。代碼說明: void CdemoView:OnGraystretch()CdemoDoc* pDoc = GetDocument();/ 輸入對象CImgProcess imgInput = pDoc->m_Image;/ 檢查圖像是灰度if (imgInput.m_pBMIH->biBitCount!=8)AfxMessageBox("不是?8-bpp灰度圖像,無法處理!");return;/ 輸出的臨時對象CImgProcess imgOutput = imgInput; / 分段線性

5、變換imgInput.GrayStretch(&imgOutput,50,100,200, 150);/ 將結(jié)果返回給文檔類pDoc->m_Image = imgOutput;pDoc->SetModifiedFlag(true);pDoc->UpdateAllViews(NULL);BOOL CImgProcess:GrayStretch(CImgProcess* pTo, BYTE x1, BYTE y1, BYTE x2, BYTE y2)if (m_pBMIH->biBitCount!=8) return false;if (x1 > x2) re

6、turn false;BYTE gray = 0;int target;for (int i = 0; i < m_pBMIH -> biHeight; i+)for (int j = 0; j < m_pBMIH -> biWidth; j+)gray = GetGray(j, i);if (gray <= x1)target = y1 * gray / x1;else if (gray <= x2)target = (y2 - y1) * (gray - x1) / (x2 - x1) + y1;elsetarget = (255 - y2) * (gr

7、ay - x2) / (255 - x2) + y2;if (target < 0) target = 0;if (target > 255) target = 255;pTo -> SetPixel(j, i, RGB(target, target, target);return true;效果截圖:運行前:運行后: 1.2直方圖均衡化 算法理論說明:將原始圖像的直方圖通過變換函數(shù)修正為均勻的直方圖,然后按均衡直方圖修正原始圖像。圖像均衡化處理后,圖像的直方圖是平直的,即各灰度值具有相同的出現(xiàn)頻數(shù),那么由于灰度值具有均勻的概率分布,圖像看起來就就比原始圖像清晰了.直方圖均衡

8、化是圖象增強中點運算的一種最常用的直方圖修正法。其實質(zhì)是減少圖像的灰度等級以換取對比度的擴大。它把給定圖像的直方圖分布改造成均勻直方圖分布,其本質(zhì)是擴大了量化間隔,減少量化級別。因此,會出現(xiàn)這樣的效果,原來灰度不同的象素經(jīng)處理后可能變?yōu)橄嗤?,形成了一片相同灰度的區(qū)域;各區(qū)域之間有明顯的邊界,出現(xiàn)偽輪廓,圖像的對比度增加。但是由于在均衡化過程中,原直方圖上頻數(shù)較少的灰度級被并入少數(shù)幾個或一個灰度級,對應(yīng)的圖像部分將得不到增強。直方圖均衡化處理的中心思想是把原始圖像的灰度直方圖從比較集中的某個灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布。對于圖像的灰度變換,我們這里介紹一種稍微復(fù)雜一點的方法,既直方圖均

9、衡化。直方圖均衡化是灰度變換的一個重要應(yīng)用,廣泛應(yīng)用在圖像增強處理中,它是以累計分布函數(shù)變換為基礎(chǔ)的直方圖修正法,可以產(chǎn)生一幅灰度級分布具有均勻概率密度的圖像,擴展了像素的取值動態(tài)范圍。若像素點的原灰度為R,變換后的灰度為S,需要注意的是R、S是歸一化后的灰度值,其灰度變換函數(shù)T()為:其中,是第j級灰度值的概率,是圖像中j級灰度的像素總數(shù),是圖像中灰度級的總數(shù)目,是圖象中像素的總數(shù)13。對變換后的S值取最靠近的一個灰度級的值,建立灰度級變換表,將原圖像變換為直方圖均衡的圖像。直方圖均衡化的基本思想是把原始圖像的直方圖變換成均勻分布的形式。具體做法如下:1.列出原始圖像的灰度級Sk,k=0,1

10、,.,L-1,其中L是灰度級的個數(shù)2.統(tǒng)計原始圖像各灰度級的像素數(shù)目nk3.計算原始圖像直方圖各灰度級的頻率數(shù)4.計算原始圖像的累計直方圖5.取整計算:Sk=int(N-1)tk+k/N6.確定映像關(guān)系:Sk->tk7統(tǒng)計新直方圖各個灰度級的像素Nk8.計算新的直方圖:pt(tk)=nk/N代碼說明: void CdemoView:OnHistogramequal()/ TODO: 在此添加命令處理程序代碼CdemoDoc* pDoc = GetDocument();/ 輸入對象CImgProcess imgInput = pDoc->m_Image;/ 檢查圖像是灰度圖if (i

11、mgInput.m_pBMIH->biBitCount!=8)AfxMessageBox("不是8-bpp灰度圖像,無法處理!");return;/ 輸出的臨時對象CImgProcess imgOutput = imgInput;/直方圖均衡化imgInput.HistogramEqualization(&imgOutput);/ 將結(jié)果返回給文檔類pDoc->m_Image = imgOutput;pDoc->SetModifiedFlag(true);pDoc->UpdateAllViews(NULL);BOOL CImgProcess:

12、HistogramEqualization(CImgProcess* pTo)if (m_pBMIH->biBitCount!=8) return false;BYTE gray;int target;double pdHist256;double dTemp;this->GenHist(pdHist);for (int i=0; i<m_pBMIH->biHeight; i+)for (int j=0; j<m_pBMIH->biWidth; j+)dTemp = 0;gray = GetGray(j, i);for (BYTE k=0; k < g

13、ray; k+)dTemp+=*(pdHist + k);target = int (255 * dTemp);if (target < 0) target = 0;if (target > 255) target = 255;pTo->SetPixel(j, i, RGB(target, target, target);return true;效果截圖:運行前運行后1.3偽彩色增強算法理論說明:人眼只能區(qū)分40多種不同等級的灰度,卻能區(qū)分幾千種不同色度、不同亮度的色彩。偽彩色增強就是把灰度圖像或單波段圖像的灰度值映射為相應(yīng)的彩色。把人眼不能區(qū)分的微小的灰度差別顯示為明顯的色

14、彩差異,便于分辨有用信息。代碼說明: void CdemoView:OnPseudocolorenhance()/ TODO: 在此添加命令處理程序代碼CdemoDoc* pDoc = GetDocument();/ 輸入對象CImgProcess imgInput = pDoc->m_Image;/ 檢查圖像是灰度圖if (imgInput.m_pBMIH->biBitCount!=8)AfxMessageBox("不是8-bpp灰度圖像,無法處理!");return;/ 輸出的臨時對象CImgProcess imgOutput = imgInput;/偽彩色

15、增強data = imgInput.PseudoColorEnhancement(&imgOutput);/顯示圖像CClientDC pDC(this);StretchDIBits(pDC.GetSafeHdc(),0,0,imgInput.m_pBMIH->biWidth, imgInput.m_pBMIH->biHeight, 0, 0, imgInput. m_pBMIH->biWidth,imgInput.m_pBMIH->biHeight,data,imgInput.m_pBMI, DIB_RGB_COLORS,SRCCOPY);/ 將結(jié)果返回給文檔

16、類pDoc->m_Image = imgOutput;pDoc->SetModifiedFlag(true);unsigned char* CImgProcess:PseudoColorEnhancement(CImgProcess* pTo)if (m_pBMIH->biBitCount!=8) return NULL;HANDLE data1Handle;m_pBMI = new BITMAPINFO;m_pBMI ->bmiHeader.biBitCount = 24;m_pBMI ->bmiHeader.biClrImportant = 0;m_pBMI

17、->bmiHeader.biClrUsed = 0;m_pBMI ->bmiHeader.biCompression = BI_RGB;m_pBMI ->bmiHeader.biHeight = m_pBMIH->biHeight;m_pBMI ->bmiHeader.biWidth = m_pBMIH->biWidth;m_pBMI ->bmiHeader.biPlanes = 1;m_pBMI ->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);m_pBMI ->bmiHeader.biSizeI

18、mage = WIDTHBYTES(m_pBMIH->biWidth * 8 ) * ( m_pBMIH->biHeight * 3 );m_pBMI ->bmiHeader.biXPelsPerMeter = 0;m_pBMI ->bmiHeader.biYPelsPerMeter = 0;data1Handle = GlobalAlloc(GMEM_SHARE, WIDTHBYTES(m_pBMIH->biWidth * 8 ) * ( m_pBMIH->biHeight * 3 );data = (unsigned char*)GlobalLock(d

19、ata1Handle);BYTE gray;int targetR, targetG, targetB;int u = 0;for (int i=0; i<m_pBMIH->biHeight ; i+)u = m_pBMIH->biHeight - i - 1;for (int j=0; j < m_pBMIH->biWidth; j+)gray = GetGray(j, u);if(0 <= gray && gray < 43)targetB = 255;targetG = (5 * ( gray - 43 ) + 255);targ

20、etR = 0;else if(gray = 43)targetB = 255;targetG = 255;targetR = 0;else if(43 < gray && gray <= 86)targetB = (-5) * ( gray - 43 ) + 256);targetG = 255;targetR = 0;else if(86 < gray && gray <= 128)targetB = 0;targetG = 255;targetR = (5 * ( gray - 128 ) + 255);else if(128 &l

21、t; gray && gray <= 170)targetB = 0;targetG = (-5) * ( gray - 128 ) + 256);targetR = 255;else if(170 <gray && gray <= 212)targetB = 255;targetG = 0;targetR = (5 * ( gray - 212 ) + 255);else if(212 < gray && gray < 255)targetB = (-5) * ( gray - 212 ) + 256);targe

22、tG = 0;targetR = 255;else targetB = 0;targetG = 0;targetR = 255;*(data + i * WIDTHBYTES(m_pBMIH->biWidth * 8 ) * 3 + j * 3 ) = targetB;*(data + i * WIDTHBYTES(m_pBMIH->biWidth * 8 ) * 3 + j * 3 + 1 ) = targetG;*(data + i * WIDTHBYTES(m_pBMIH->biWidth * 8 ) * 3 + j * 3 + 2) = targetR;GlobalU

23、nlock(data1Handle);return data;2.1中值濾波算法理論說明:中值濾波是一種最常用的圖像增強技術(shù),是非線性濾波。對椒鹽噪聲有很好的去噪效果。給定的圖像f(x,y)中的每一個點(m,n),取其領(lǐng)域s。設(shè)s含有M個像素a1,a2,aM,將其按大小排序,若M是奇數(shù)時,則位于中間的那個象素值就是修改后圖像g(x,y)在點(m,n)處的像素值;若M是偶數(shù)則取中間兩個象素的平均值作為修改后圖像g(x,y)在點(m,n)處的象素值。這是用某像素周圍n×n像素范圍的平均值置換該像素值的方法。中值濾波在每個n*n鄰域內(nèi)都會忽略那些相對于鄰域內(nèi)大部分像素更亮或更暗,并且所占區(qū)

24、域小于像素總數(shù)的一半(n2/2)的那些像素的影響,而實際上滿足這些條件被忽略掉的往往是噪聲。 代碼說明: void CdemoView:OnEnhamidianf()/ TODO: 在此添加命令處理程序代碼CdemoDoc* pDoc = GetDocument();/ 輸入對象CImgProcess imgInput = pDoc->m_Image;/ 檢查圖像是灰度圖if (imgInput.m_pBMIH->biBitCount!=8)AfxMessageBox("不是8-bpp灰度圖像,無法處理!");return;int nFilterH; / 濾波器

25、的高度int nFilterW; / 濾波器的寬度int nFilterMX; / 中心元素的X坐標(biāo)int nFilterMY; / 中心元素的Y坐標(biāo)/ 初始化變量值/ 獲取用戶的設(shè)定nFilterH = 3;nFilterW = 1;nFilterMX =0;nFilterMY =1;/ 更改光標(biāo)形狀BeginWaitCursor();/ 輸出的臨時對象CImgProcess imgOutput = imgInput;/ 調(diào)用MedianFilter()函數(shù)中值濾波imgInput.MedianFilter(&imgOutput, nFilterH, nFilterW, nFilte

26、rMY, nFilterMX);/ 將結(jié)果返回給文檔類pDoc->m_Image = imgOutput;/ 設(shè)置臟標(biāo)記pDoc->SetModifiedFlag(TRUE);/ 更新視圖pDoc->UpdateAllViews(NULL);/ 恢復(fù)光標(biāo)EndWaitCursor();int CImgProcess:GetMedianValue(int * pAryGray, int nFilterLen)int i, j;int nMedianValue;int nTemp; for (j=0; j < nFilterLen - 1; j+)for (i=0; i &

27、lt; nFilterLen - j - 1; i+)if (pAryGrayi > pAryGrayi + 1)nTemp = pAryGrayi;pAryGrayi = pAryGrayi + 1;pAryGrayi + 1 = nTemp;if (nFilterLen & 1) > 0)nMedianValue = pAryGray(nFilterLen + 1) / 2;elsenMedianValue = (pAryGraynFilterLen / 2 + pAryGraynFilterLen / 2 + 1) / 2;return nMedianValue;vo

28、id CImgProcess:MedianFilter(CImgProcess *pTo, int nFilterH, int nFilterW, int nFilterMY, int nFilterMX)pTo->InitPixels(0); int i, j, k, l;int nHeight = GetHeight();int nWidth = GetWidthPixel();int nGray;int* pAryGray;pAryGray = new intnFilterH * nFilterW;for(i = nFilterMY; i < nHeight - nFilte

29、rH + nFilterMY + 1; i+)for(j = nFilterMX; j < nWidth - nFilterW + nFilterMX + 1; j+)for (k = 0; k < nFilterH; k+)for (l = 0; l < nFilterW; l+)nGray = GetGray(j + l - nFilterMX, i + k -nFilterMY);pAryGrayk * nFilterW + l = nGray;/lnGray = GetMedianValue(pAryGray, nFilterH * nFilterW); pTo-&g

30、t;SetPixel(j, i, RGB(nGray, nGray, nGray); /j/idelete pAryGray;效果截圖:運行前運行后:1. 圖像銳化 圖像經(jīng)轉(zhuǎn)換或傳輸后,由于傳遞函數(shù)對高頻成分的衰減作用,造成圖像模糊,細(xì)節(jié)輪廓不清楚。加強圖像邊緣輪廓,使圖像看起來比較清晰的處理,但同時也增加圖像的噪聲。3.1 Sobel梯度銳化算法理論說明: 索貝爾算子(Sobel operator)是圖像處理中的算子之一,主要用作邊緣檢測。在技術(shù)上,它是一離散性差分算子,用來運算圖像亮度函數(shù)的梯度之近似值。在圖像的任何一點使用此算子,將會產(chǎn)生對應(yīng)的梯度矢量或是其法矢量.該算子包含兩組3x3的

31、矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。如果以A代表原始圖像,Gx及Gy分別代表經(jīng)橫向及縱向邊緣檢測的圖像,其公式如下: 圖像的每一個像素的橫向及縱向梯度近似值可用以下的公式結(jié)合,來計算梯度的大小。然后可用以下公式計算梯度方向。 在以上例子中,如果以上的角度等于零,即代表圖像該處擁有縱向邊緣,左方較右方暗。 在邊沿檢測中,常用的一種模板是Sobel 算子。Sobel 算子有兩個,一個是檢測水平邊沿的 ;另一個是檢測垂直平邊沿的 。與 和 相比,Sobel算子對于象素的位置的影響做了加權(quán),因此效果更好。 Sobel算子另一種形式是各向同性Sobel(

32、Isotropic Sobel)算子,也有兩個,一個是檢測水平邊沿的 ,另一個是檢測垂直平邊沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權(quán)系數(shù)更為準(zhǔn)確,在檢測不同方向的邊沿時梯度的幅度一致。由于建筑物圖像的特殊性,我們可以發(fā)現(xiàn),處理該類型圖像輪廓時,并不需要對梯度方向進(jìn)行運算,所以程序并沒有給出各向同性Sobel算子的處理方法。 由于Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù), 簡單有效,因此應(yīng)用廣泛。美中不足的是,Sobel算子并沒有將圖像的主體與背景嚴(yán)格地區(qū)分開來,換言之就是Sobel算子沒有基于圖像灰度進(jìn)行處理,由于Sobel算子沒有嚴(yán)格地模

33、擬人的視覺生理特征,所以提取的圖像輪廓有時并不能令人滿意。 在觀測一幅圖像的時候,我們往往首先注意的是圖像與背景不同的部分,正是這個部分將主體突出顯示,基于該理論,我們給出了下面閾值化輪廓提取算法,該算法已在數(shù)學(xué)上證明當(dāng)像素點滿足正態(tài)分布時所求解是最優(yōu)的。代碼說明:void CdemoView:OnEnhagradsharp()/ TODO: 在此添加命令處理程序代碼 CdemoDoc* pDoc = GetDocument();/ 輸入對象CImgProcess imgInput = pDoc->m_Image;/ 檢查圖像是灰度圖if (imgInput.m_pBMIH->bi

34、BitCount!=8)AfxMessageBox("不是8-bpp灰度圖像,無法處理!");return;/ 更改光標(biāo)形狀BeginWaitCursor();/ 輸出的臨時對象CImgProcess imgOutput = imgInput;/ 調(diào)用FilterSobel()函數(shù)進(jìn)行Sobel梯度銳化imgInput.FilterSobel(&imgOutput);/ 將結(jié)果返回給文檔類pDoc->m_Image = imgOutput;/ 設(shè)置臟標(biāo)記pDoc->SetModifiedFlag(TRUE);/ 更新視圖pDoc->UpdateAl

35、lViews(NULL);/ 恢復(fù)光標(biāo)EndWaitCursor();void CImgProcess:Template(CImgProcess *pTo, int nTempH, int nTempW, int nTempMY, int nTempMX, FLOAT *pfArray, FLOAT fCoef)pTo->InitPixels(0); int i, j; for(i=nTempMY; i<GetHeight() - (nTempH - nTempMY) + 1; i+)for(j=nTempMX; j<GetWidthPixel() - (nTempW - n

36、TempMX) + 1; j+)float fResult = 0;for(int k=0; k<nTempH; k+)for(int l=0; l<nTempW; l+)fResult += GetGray(j + l - nTempMX, i + k - nTempMY) * pfArrayk * nTempW + l;fResult *= fCoef;fResult = (FLOAT)fabs(fResult); BYTE byte;if(fResult > 255)byte = 255;elsebyte = fResult + 0.5;pTo->SetPixel

37、(j, i, RGB(byte, byte, byte);void CImgProcess:FilterSobel(CImgProcess *pTo)CImgProcess img1, img2;img1 = *pTo;img2 = *pTo;Template(&img1, 3, 3, 1, 1, Template_HSobel, 1);Template(&img2, 3, 3, 1, 1, Template_VSobel, 1);*pTo = img1 + img2;void CImgProcess:Scale(CImgProcess* pTo,double times)in

38、t nHeight = pTo->GetHeight();int nWidth = pTo->GetWidthPixel(); int i, j; for(i=0;i<nWidth;i+)for(j=0;j<nHeight;j+) if(int(i*1/times+0.5)<nWidth && int(j*1/times+0.5)<nHeight) pTo->SetPixel(i,j,GetPixel(int(i*1/times+0.5),int(j*1/times+0.5);elsepTo->SetPixel(i,j,RGB(255,255,255);/for j/for i效果截圖:運行前圖像銳化運行后2. 圖像幾何變換之圖像放縮 算法理論說明:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論