include <iostream>
include <opencv2\imgproc\imgproc.hpp>
include <opencv2\core\core.hpp>
include <opencv2\highgui\highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv){
cv::Mat src = cv::imread("lena.jpg");
cv::Mat gray;
cv::Mat resize;
cv::Mat big;
cv:: Mat enlarged;
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::resize(enlarged, resize, cv::Size(src.rows, src.cols));
int newsrow,newscol;
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);
}
}
newsrow=resize.rows*2;
newscol=resize.cols*2;
cv::Mat clone1(newsrow,newscol ,CV_8U);
for(int i=0;i<newsrow;i++){
for(int j=0;j<newscol;j++){
clone1.at<uchar>(i,j);
}
}
cv::imshow("clone", clone);
cv::imshow("clone1",clone1);
cv::waitKey(0);
return 0;}
从我在此行上的代码clone1如何将图像显示为更大尺寸的克隆? 我的问题是扩大到双倍大小,但我的老师告诉我,她需要通过循环扩大到双倍大小。所以她不需要使用双倍大小的库。 不要改变任何循环因为我的老师需要我只使用这个代码放大图像。但是你稍微改变了一下。 提示:如果循环是n / 2> 2,她指导我构建;
最好的谢谢 Chairat(泰国)
答案 0 :(得分:0)
您必须创建新的Mat。并且Mat.size有*运算符重载。对于3尺寸更大的图像;
cv::Mat BiggerImage;
cv::resize(clone, BiggerImage, clone1.size() * 3 );
cv::imshow("BiggerImage",BiggerImage);