2013-10-19 3 views
0
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 인 경우 그녀가 저를 인도한다는 것을 안내합니다.OPENCV 코드로 내 이미지에서 이미지를 표시하려면 어떻게해야합니까?

당신은 새로운 매트를 작성해야합니다

답변

0

최저 감사 Chairat (태국). 그리고 Mat.size에는 연산자 오버로드가 있습니다. 3 사이즈 큰 이미지 용;

cv::Mat BiggerImage; 
cv::resize(clone, BiggerImage, clone1.size() * 3); 
cv::imshow("BiggerImage",BiggerImage); 
+0

감사합니다. 그러나 만약에 그녀가 나에게 암시하는 loop n/2> 2는 어떨까요? – zlatan14

+0

그러면 나는 당신의 질문을 잘 이해하지 못했을 것 같습니다. 복제품 1을 더 크게 보이려고하십니까? 어디서 얼마나 큰가요? 왜 루프가 필요한가요? 세부 사항이 필요합니다. – emrahustun

+0

방금 ​​다시 내 질문을 편집 해주세요. 고맙습니다 – zlatan14

관련 문제