撰寫一個程式,讀取一張圖像(.bmp 或.jpg 圖像格式)
(1)使用下列內插演算法實作影像大小縮放調整程式。
(a) Nearest Neighbor Interpolation
(b) Bilinear Interpolation
(c) Bicubic Interpolation (加分題)
(2)撰寫圖像旋轉程式。
(a) Nearest Neighbor Interpolation
Parameters: |
|
---|
R = rgbData[y, x, 0]; G = rgbData[y, x, 1]; B = rgbData[y, x, 2]; r = (double)R / (R + G + B); g = (double)G / (R + G + B); b = (double)B / (R + G + B); value1 = 0.5 * ((r - g) + (r - b)); value2 = Math.Pow((Math.Pow(r - g, 2) + (r - b) * (g - b)), 0.5); radial = Math.Acos(value1 / value2); theta = (int)(radial * 180.0 / Math.PI); if (!double.IsNaN(theta)) h = (b > g) ? (360 - theta) : theta; else h = 0; s = 1 - 3 * CompareRGB.Min(r, g, b); if (double.IsNaN(s)) s = 0; i = (R + G + B) / 3.0; 成果顯現: (b) 撰寫一個函數偵測圖像的膚色區域(將膚色與背景區域區分出以單色圖像輸出。) 偵測每個的RGB值,接近膚色的為白色,其他則為黑色 成果顯現:![]()