zla*_*n14 1 c++ opencv image image-processing
int main(int argc, char** argv){
cv::Mat gray;
cv::Mat resize;
cv::Mat big;
cv::cvtColor(src, gray, CV_BGR2GRAY);
cv::resize(gray, resize, cv::Size(src.rows/2, src.cols/2));
cv::resize(resize, big, cv::Size(src.rows, src.cols));
cv::Mat clone(resize.rows, resize.cols, CV_8U);
for(int y=0;y<resize.rows;y++){
for(int x=0;x<resize.cols;x++){
clone.at<uchar>(y,x) = resize.at<uchar>(y,x);
}
}
cv::imshow("clone", clone);
Run Code Online (Sandbox Code Playgroud)
我写了我的代码,我有2个问题1)如何将1个像素放大到4个像素?并告诉他们.2)如何将图像的每个像素放大为4倍乘以图像的每个像素?(不使用插值)
编辑
从我的图像我想将1像素放大到4像素.然后所有像素图像必须扩展成更大的图像.
您需要使用最近邻居"插值":( cv::INTER_NEAREST
或CV_INTER_NN
)cv::resize()
:
cv::resize(gray, enlarged, cv::Size(gray.cols*2, gray.rows*2), cv::INTER_NEAREST);
Run Code Online (Sandbox Code Playgroud)
最近邻大小调整方案实际上不是插值.它只选择原始中最接近的像素.当每个像素放大2倍时,将重复4次,如图所示.