openlang

用 OpenCV C++ 快速将 Mat 的一块区域填成零?

把灰度 Mat 图像中的一块区域填成零(或者其他常数值),最有效的方法是什么?

应该先创建全零图像,再调用 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 邮件在收件箱里显示 "Facebook - Message title",而不是 "mail…

    回复 2最近活动 java
  2. 从 TypeScript 访问 Dynamics CRM

    我的 CRM 代码在网页资源中运行,所以要获取实体数据,就得写成 这样来读取数据。 可惜用 typescript 编写时,这个表达式无法编译。现在我手动把 window.parent 加到 Xrm.Page 前面……(Xrm 类型定义已经装好了),这…

    回复 2最近活动 typescript
  3. Gleam 的 HTTP 响应头需要怎样的日期格式?

    我想发送一个 Date 响应头。所需的格式如下。 这是我目前尝试的代码。

    回复 3最近活动 gleam