Opencv用红色填充矩形,每5个像素应该有黑色

Opencv filled rectangle with red color and every 5 pixel should have the color black

本文关键字:像素 黑色 5个 红色 填充矩形 Opencv      更新时间:2024-09-22

im是使用c++的Opencv初学者。我必须在图像中间绘制一个填充矩形(10x10(,其中每5个像素为黑色。

我知道如何创建矩形。但是我如何填充它并改变每5个像素的颜色呢?如果有人能帮忙就好了:/

void cv::rectangle  (   InputOutputArray    img,
Point   pt1,
Point   pt2,
const Scalar &  color,
int     thickness = 1,
int     lineType = LINE_8,
int     shift = 0 
)       

到目前为止我的代码:

#include "opencv2/opencv.hpp"
#include<sstream>
using namespace std;
using namespace cv;
int main(void)
{
//Laden vom Bild
Mat img;
img = imread("C:\Users\Mehmet\Desktop\yoshi.png");
if (!img.data)
{
cout << "Could not find the image";
return -1;
}
namedWindow("window");
imshow("window", img);
imwrite("C:\Users\Max Mustermann\Desktop\11.png", img); 


cv::Size sz = img.size();
int imageWidth = sz.width;
int imageHeight = sz.height;
cout <<"Es gibt " <<img.channels()<<" Farbkanäle" << endl;;
cout << "Die Breite betreagt: "<<sz.width << endl;
cout <<"Die Hoehe betreagt: " << sz.height<<endl;
std::cout << img.type();

Mat img1;
img.convertTo(img1, CV_32FC3, 1 / 255.0);
waitKey(0);



return 0;
}
```

您可以在opencv文档中找到问题的答案。

要填充矩形,您可以更改参数"厚度">

===>'厚度组成矩形的线的厚度负值,如FILLED,表示函数必须绘制一个填充的矩形'

链接:https://docs.opencv.org/4.5.2/d6/d6e/group__imgproc__draw.html#ga07d2f74cadcf8e305e810ce8eed13bc9

并且,可以通过颜色参数来改变颜色。使用cv::标量(蓝色绿色红色(可以轻松控制此参数。

例如,矩形(~~~,cv::标量(255,0,0(,~~~(;将使用依赖的其他参数制作蓝色矩形。所以,如果你想改变颜色,根据你的需要改变这些值。

因此,如果你想反复改变矩形的颜色,我认为你肯定可以用这两个参数来循环。