openlang

OpenCV C++에서 Mat 영역을 가장 빠르게 0으로 채우는 방법?

그레이스케일 Mat 이미지의 한 영역을 0으로(또는 다른 상수 값으로) 채우는 가장 효율적인 방법은 뭔가요?

0으로 된 이미지를 만들어 copyTo()를 호출하는 게 맞을까요, 아니면 더 좋은 방법이 있나요?

영어에서 번역원문 보기

이어지는 대화 3

서로의 근거를 따라
  1. 고유 링크

    저라면 setTo()(http://docs.opencv.org/modules/core/doc/basic_structures.html?highlight=setto#Mat&%20Mat%3a%3asetTo%28InputArray%20value,%20InputArray%20mask%29)를 이렇게 쓰겠습니다:

    // read the picture
    cv::Mat frame = cv::imread("sample-gray.jpg", CV_LOAD_IMAGE_COLOR);
    
    // choose the area to modify
    cv::Mat region = frame(cv::Rect(12, 12, 24, 24));
    
    // give that area an rgb colour
    region.setTo(cv::Scalar(blueChannel, greenChannel, redChannel));
    영어에서 번역원문 보기
  2. 고유 링크

    흰 캔버스 위에 검은 직사각형을 칠한다고 해 보죠:

    cv::Mat canvas(120,120,CV_8U,cv::Scalar(255));
    canvas(cv::Rect(18,18,24,48)) = 0;
    cv::imshow("Img",canvas);
    cv::waitKey();
    영어에서 번역원문 보기
  3. 고유 링크

    이 코드를 한번 써 보세요

    Mat frame;
    frame = imread("images/sample-gray.jpg");
    int left=120;int top=120; int width=120;int height=120;
    Rect region = Rect(left,top,width,height);
    frame(region).setTo(cv::Scalar(0,0,0));
    imshow("display",frame);
    영어에서 번역원문 보기

같은 질문의 다른 갈래

  1. Java Mail에서 이메일 주소 대신 발신자 이름을 표시하기

    Java Mail API로 메시지를 보내고 있어요. 도착한 메일의 받은편지함에는 보낸 주소가 표시돼요. 그 발신자 주소 대신 텍스트를 보여 주고 싶어요. facebook에서 오는 메일은 받은편지함에 "mailbox@faceb…

    답글 2최근 활동 java
  2. TypeScript에서 Dynamics CRM에 접근하기

    CRM 코드가 웹 리소스 안에서 실행되다 보니 엔터티 데이터를 가져오려면 이렇게 작성해야 해요. 그런데 typescript로 작성하면 이 표현식이 컴파일되지 않아요. 지금은 Xrm.Page 앞에 window.parent를..…

    답글 2최근 활동 typescript
  3. Gleam HTTP 응답 헤더에는 어떤 날짜 형식이 필요한가요?

    Date 헤더를 보내고 싶어요. 필요한 형식은 다음과 같아요: 지금까지 시도한 코드는 이거예요:

    답글 3최근 활동 gleam