圖像平移

圖像平移就是將圖像中的所有像素點按照給定的平移量進行水平(x方向)或垂直(y方向)移動。

基本介紹

  • 中文名:圖像平移
  • 外文名:Image shift
例子,圖像平移規律,代碼,

例子

初始坐標為(
,
)的點經過平移(
,
)(以向右,向下為正方向)後,坐標變為(
,
)。這兩點之間的關係是
=
+
=
+
圖像平移圖像平移

圖像平移規律

(1)沿
軸平移的規律:向左平移
個單位,把解析式中的
換成
+
;向右平移
個單位,把原解析式的的
換成
-
例如
向左平移4個單位得到的解析式為:
只需把
換成
即可,
向右平移2個單位得到的解析式為:
(2)沿
軸平移的規律:向上平移
個單位,把解析式中的
換成
-
;向下平移
個單位,把解析式中的
換成
-
.
例如
向上平移2個單位後的解析式為
向下平移4個單位後的解析式為:

代碼

圖像平移操作代碼如下:
void ImageTranslation(const Mat& src, Mat& dstImage, int Xoffset, int Yoffset){dstImage.create(src.size(), src.type());int rowNum = src.rows;int colNum = src.cols;for (int i = 0; i < rowNum; i++){for(int j = 0; j < colNum; j++){int x = j - Xoffset;int y = i - Yoffset;if (x > 0 && x < colNum && y > 0 && y < rowNum){dstImage.at<Vec3b>(i, j) = src.at<Vec3b>(y, x);}}}}//平移圖像,圖像大小改變void ImageTranslation2(const Mat& src, Mat& dstImage, int Xoffset, int Yoffset){int nRowNum = src.rows + abs(Yoffset);int nColNum = src.cols + abs(Xoffset);dstImage.create(nRowNum, nColNum, src.type());for (int i = 0; i < nRowNum; i++){int y = i - Yoffset;for (int j = 0; j < nColNum; j++){int x = j - Xoffset;if (x > 0 && x < src.cols && y > 0 && y < src.rows){dstImage.at<Vec3b>(i, j) = src.at<Vec3b>(y, x);}}}}

相關詞條

熱門詞條

聯絡我們