- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东南电通系影像处理之简易影像转换复制外部影像: 影像左右互换:
東南電通系 影像處理之簡易影像轉換
複製外部影像:
richTo.getClone(gRichImage); // 複製一份 gRichImage 的內容到 richTo
影像左右互換:
先算出中心點位置,接著只要將與中心點左右對稱的像素對調即可!
中心點的算法:
首先讓我們看看底下的說明:
1) 像素編號由 1 開始:
1,2,3,4 , 5,6,7,8 = 中心點介於4, 5 之間,而 (int) (8/2) = 4 ;
1,2,3,4, 5 ,6,7,8, 9 = 中心點5 ,不過 (int) (9/2) = 4 。
2) 像素編號由0 開始
0,1,2,3 , 4,5,6,7 = 中心點介於3, 4 之間,而 (int) (8/2) = 4 ;
0,1,2,3, 4 ,5,6,7,8 = 中心點4 ,且 (int) (9/2) = 4 。
顯然水平方向的像素數目是奇數或偶數時,會對應到不同的情況:
奇數的情況下,中心對稱軸上的點不必更動,僅需要把左右兩邊對稱位置的點互換即可;
偶數的情況下,不存在中心對稱軸,要把左右兩邊對稱位置的點互換。
假設影像的寬度是W (水平方向像素的數目) ,由於在我們的程式設定中,最左邊像素編號由0 開
始,所以最右邊的像素編號為(W-1) ,也因此透過上述的討論可知,每一列中需要交換的對數(兩兩
對稱成對)為:(int) (W/2) 。
因此同學可參考底下的虛擬碼 (pseudo code) :
//=== 由上往下,從左而右地訪問一半的 pixels
int w = richTo.getWidth();
int h = richTo.getHeight();
int halfW = (int) (w/2); // 為什麼是一半?
for (int r=0; r h; ++r)
{ for (int c=0; c halfW; ++c)
{
Swap(richTo[r][c], richTo[r][ -c]); // 交換像素,Swap(.)請自行撰寫!
}
}
1 / 4
東南電通系 影像處理之簡易影像轉換
影像上下互換:
原理與水平互換相同,只是像素交換的方向變成上下而已!同學試著自行修改並呈現結果!
//=== 由左到右,從上而下地訪問一半的 pixels
int h = richTo.getHeight();
int w = richTo.getWidth();
int halfH = (int) (h/2); // 為什麼是一半?
for (int c=0; c w; ++c)
{ for (int r=0; r halfH; ++r)
{
Swap(richTo[r][c], richTo[ ][c]); // 完成交換像素
}
}
(*上述Swap(.)函式請自行撰寫!)
2 / 4
東南電通系 影像處理之簡易影像轉換
影像順時針或逆時針旋轉 90 度:
上述水平互換,轉換前後的影像尺寸不變。通常而言,除非影像的長寬相同,否則不管是將影像作
順或逆時針旋轉 90 度,轉換前後的影像尺寸將會不同,即長與寬的大小會互換。因此一開始我們
需要先產生一個影像其大小與旋轉後影像一樣,再根據相關的位置讀取原來影像的內容,並拿來填
滿這個旋轉後的影像。
順時針(CW) 90 度旋轉
順時針(CW) 90 度旋轉
richTo[r][c] = rich[ ][ ];
逆時針(CCW) 90 度旋轉
richTo[r][c] = rich[
文档评论(0)