OpenCV基础知识学习 -- 第三弹

it2025-05-19  13

获取图像像素指针  CV_Assert(myImage.depth() == CV_8U ) Mat.ptr<uchar> (int i=0) 获取像素矩阵的指针,索引 i 表示第几行,从 0 开始计行数 获得当前行指针 const uchar *current = myImage.ptr<uchar>(row) 获取当前像素点 p (row,col) 的像素值 p(row,col) = current[col]   像素范围处理 saturate_cast<uchar> saturate_cast<uchar>(-100)  返回 0 saturate_cast<uchar>(288) 返回 255 saturate_cast<uchar>(100) 返回 100 这个函数的功能是确保 RGB 值的范围在 0-255 之间   图像像素的运算操作 加法: add(m1, m2, img); 减法: subtract(m1, m2, img); 乘法: multiply(m1,m2,img); 除法: divide(m1, m2, img);   参数1:进行运算的图像1 参数2:进行运算的图像2 参数3:运算结果输出的图像   滚动条操作 int createTrackbar(const String& trackbarname, const String& winname,                               int* value, int count,                               TrackbarCallback onChange = 0,                               void* userdata = 0);       createTrackbar("Value", "滚动条", &lightValue,maxValue,onTrack); 参数1:滚动条名称 参数2:滚动条所在的窗口名称 参数3:随滚动条改变的数值变量 参数4:滚动条数值改变的最大值(最小值默认 0) 参数5:响应滚动条数值改变的函数 参数6:附加传递的参数(任意类型)   图像位运算 bitwise_and(InputArray src1, InputArray src2,                               OutputArray dst, InputArray mask = noArray()); 参数1:进行运算的 图像1 参数2:进行运算的图像2 参数3:输出结果的图像        bitwise_and(m1,m2,img);        imshow( "与运算", img);        bitwise_or(m1, m2, img);        imshow( "或运算", img);        bitwise_xor(m1, m2, img);        imshow( "异或运算", img);        bitwise_not(m2, img);        imshow( "非运算", img);         使用 rectangle 绘制图像 rectangle(InputOutputArray img, Rect rec,                           const Scalar& color, int thickness = 1,                           int lineType = LINE_8, int shift = 0);   参数1:要进行绘制的图像 参数2:要绘制的大小 参数3:图像的颜色 参数4:选择填充还是描边操作  <0 填充 >0描边 参数5:线型类型 参数6:对中心坐标和半径值中的小数位进行移位。 rectangle(m1, Rect(150,150,80,80), Scalar(255,255,0),-1, LINE_8,0);  // 绘制一个 左上角坐标为(150,150),宽80,高80,蓝色填充的图像 rectangle(m2, Rect(200, 200, 80, 80), Scalar(0, 255, 255), -1, LINE_8, 0);  // 绘制一个 左上角坐标为(200,200),宽80,高80,黄色描边的图像     split(InputArray m, OutputArrayOfArrays mv):分离图像的通道 参数1:要进行分离的图像 参数2:接收分离后的通道数组   mixChannels(InputArrayOfArrays src, InputOutputArrayOfArrays dst,                             const int* fromTo, size_t npairs):将图像通道进行混合 参数1:要进行混合的图像 参数2:混合后的输出图像 参数3:混合数组  例: int channel[] = {1,2,0,0,2,1}   // 第一通道 1 2 混合,第二通道 0 0混合,第三通道 2 1混合 参数4:要混合的图像通道数    
最新回复(0)