Opencv用红色填充矩形,每5个像素应该有黑色
Opencv filled rectangle with red color and every 5 pixel should have the color black
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(,~~~(;将使用依赖的其他参数制作蓝色矩形。所以,如果你想改变颜色,根据你的需要改变这些值。
因此,如果你想反复改变矩形的颜色,我认为你肯定可以用这两个参数来循环。
相关文章:
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何在24位SDL_Surface上设置像素的颜色
- 如何从SDL_Surface获取特定像素的颜色
- 如何将CMSampleBufferRef/CIImage/UIImage转换为像素,例如uint8_t[]
- 在C++中查找像素 RGB 数据的最快方法是什么?
- 是否可以从 OpenGL 缓冲区获取原始大小的像素?
- 选择基于另一个垫子的非零像素的cv::Mat的一部分?
- 如何使用 sdl2 快速绘制像素网格?
- 在 OpenCV 和 C++ 中查找距轮廓中心最近的黑色像素
- GDI+:如何将黑色像素替换为红色像素
- 如何查找黑色像素位置
- 从HWND获取并保存位图(每个像素8,4,1位-黑色图像)
- C/C++LIBTIFF:需要从BW TIFF文件中读取白色和黑色像素的像素位置
- 使用OpenCV计算黑色像素
- 如果新图像中的原始像素为黑色,则Qt绘制一个蓝色像素
- 在opencvc++中设置彩色图像中的像素(i,j)为黑色
- 渲染到纹理,读取像素的结果大部分是黑色的
- 如何确定 OpenCV 中的像素是黑色还是白色
- 最右边的黑色像素