#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return -1;
}
// Mat dst = Mat::zeros(src.size(), CV_8UC1);
Mat dst = Mat::zeros(src.rows, src.cols, CV_8UC1);
for (int y = 0; y < src.rows; y++) {
for (int x = 0; x < src.cols; x++) {
int x_ = x + 200;
int y_ = y + 100;
if (x_ < 0 || x_ >= dst.cols) continue;
if (y_ < 0 || y_ >= dst.rows) continue;
dst.at<uchar>(y_, x_) = src.at<uchar>(y, x);
}
}
imshow("src", src);
imshow("dst", dst);
waitKey();
}
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return -1;
}
Mat dst(src.rows * 3 / 2, src.cols, src.type(), Scalar(0)); // 모든 픽셀의 초기 값을 0을 갖도록 설정함
// 크기를 입력 영상의 세로 크기의 1.5배, 가로 크기는 동일하게 함
double m = 0.5;
for (int y = 0; y < src.rows; y++) {
for (int x = 0; x < src.cols; x++) {
int nx = x;
int ny = int(y + m*x);
dst.at<uchar>(ny, nx) = src.at<uchar>(y, x);
}
}
imshow("src", src);
imshow("dst", dst);
waitKey();
}