c++ - 使用 cvGet2D cvSet2D 函数修改图像像素

标签 c++ opencv

我如何使用 cvGet2DcvSet2D 得到这个结果:

代码:

std::string path = "C:\\image.jpg";
cv::Mat img = cv::imread (path);
CvScalar scal = cvGet2D(m, 0, 2);
cvSet2D(m, 0, 2, new_value);*/
cv::imshow( "Result window", img );

最佳答案

因为您知道矩形左上角和右下角的坐标:

Point tl(250, 250);
Point br(350, 280);

你可以画一个黑色填充的矩形:

rectangle(img, Rect(tl, br), Scalar(0,0,0), CV_FILLED);

结果(请注意,我的图片与您的图片大小不同,因此结果略有不同):

enter image description here

代码:

#include <opencv2\opencv.hpp>
using namespace cv;

int main()
{
    // Load image
    Mat3b img = imread("path_to_image");

    // Set top-left and bottom-right rectangle points
    Point tl(250, 250);
    Point br(350, 280);

    // Draw a filled rect
    rectangle(img, Rect(tl, br), Scalar(0,0,0), CV_FILLED);

    // Show result
    imshow("Result", img);
    waitKey();

    return 0;
}

注意

cvSetXDcvGetXD 是旧式 C 语法。永远不要混合使用过时的 C 语法和 C++ 语法。如果你想访问 Mat 中的像素值,你应该使用 at功能。

关于c++ - 使用 cvGet2D cvSet2D 函数修改图像像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32916100/

相关文章:

c++ - bit blit 在 GDI 中是如何工作的?

c++ - 如何读取视频元数据(C/C++)?

c++ - 为什么从 Windows 启动时程序会运行而不是命令提示符?

python - python 中的 opencv : Is there a easy way to compute the curvature of a contour?

python - 如何将 Opencv 集成到 Tkinter 窗口中

c++ - classX' 没有命名类型

c++ - 为什么会出现错误划分?

c++ - 如何调整应裁剪和缩放面部以适合大小的图像大小?

python - 单击鼠标并在视频中的鼠标位置绘制固定矩形(python_opencv)

python-2.7 - 如何将点写成二维点的向量