自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 第十七节 鼠标的操作与相应

setMouseCallback("鼠标绘制", on_draw,(void*)(&image));--在原图像image上绘制一个红色的(Scalar(0,0,255))线宽为2,连接方式为8,不填充的矩形;--将备份的绘制图形temp复制回原始图像image,以恢复上一次的状态,避免出现移动过程中的绘制残留。--创建一个结构体对象box,以其实高度sp.x,sp.y以及宽度dx和高度dy来定义矩形区域。imshow("鼠标绘制", image);--将当前的x,y坐标值发给sp.x,sp.y;

2024-09-24 14:25:41 697

原创 第十六节 多边形的填充与绘制

-Point表示二维坐标点,pts存储多个像素点--在 OpenCV 中,polylines函数用于在图像上绘制一系列的多边形轮廓。函数原型:参数解释:• img:要在其上绘制多边形的图像。• pts:一个包含多个多边形顶点集合的向量。每个内部的向量表示一个多边形的顶点坐标。• isClosed:表示多边形是否闭合。如果为true,则多边形的最后一个点会与第一个点连接起来形成闭合图形;如果为false,则多边形不闭合。

2024-09-23 17:29:26 293

原创 第十五节 随机数与随机颜色

-RNG随机数生成器的种子值12345break;--uniform用于生成随机数整数,rng种子值*/在canvas上画一个起始点为x1y1,终点为x2y2的直线,颜色是随机的imshow("绘制演示",canvas);这个函数名为random_drawing,作用是在给定的图像上随机绘制线条,直到用户按下 Esc 键(键码为 27)退出。

2024-09-23 16:32:39 572

原创 第十四节 图像几何绘制

● Scalar(0, 255, 255):椭圆的颜色,这里是青色(蓝色通道为 0,绿色通道为 255,红色通道为 255)。● Scalar(255, 0, 0):圆形的颜色,这里是蓝色(蓝色通道为 255,绿色通道为 0,红色通道为 0)。● Scalar(0, 0, 255):直线的颜色,这里是红色(蓝色通道为 0,绿色通道为 0,红色通道为 255)。• Scalar(0, 0, 255):矩形的颜色,这里是红色(蓝色通道为 0,绿色通道为 0,红色通道为 255)。

2024-09-23 13:39:35 1019

原创 第十三章 图像像素值统计

● stddev:输出的标准差,可以是一个单值(对于单通道图像)或一个向量(对于多通道图像)。● mean:输出的均值,可以是一个单值(对于单通道图像)或一个向量(对于多通道图像)。● minLoc:指向最小值位置的指针,如果不需要这个值,可以设置为 NULL。● maxLoc:指向最大值位置的指针,如果不需要这个值,可以设置为 NULL。● maxVal:指向最大值的指针,如果不需要这个值,可以设置为 NULL。● src:输入图像,可以是单通道或多通道的。

2024-09-23 09:33:16 525

原创 第十二章 图像的色彩空间转换

所以当执行copyTo时,在mask为白色的位置,会把原图中的人物像素复制过来,覆盖掉原来的红色像素,而在mask为黑色的位置,redback中的红色像素保持不变,从而实现了将原图的人物放到白色的位置,同时保留红色背景在其他位置的效果。如果像素值为非零(这里白色像素值为 255,被视为非零),那么就将输入图像image中对应位置的像素值复制到目标图像redback中的相同位置。如果输入图像中某个像素的 HSV 值在给定的上下限范围内,那么在掩码图像中对应位置的像素值为 255(白色),否则为 0(黑色)。

2024-09-22 01:32:14 989

原创 第十一节 通道的分离与闭合

所以这里表示将源图像的通道 0 复制到目标图像的通道 2,源图像的通道 1 复制到目标图像的通道 1,源图像的通道 2 复制到目标图像的通道 0。函数调用中,第一个参数&image是源图像的指针,第二个参数1表示源图像的数量,第三个参数&dst是目标图像的指针,第四个参数1表示目标图像的数量,第五个参数from_to是通道映射关系数组,第六个参数3表示每个图像中的通道数。imshow("通道混合", dst);

2024-09-22 00:45:01 286

原创 第十节 图像像素的逻辑操作

-在m1的图像上绘制矩形(rectangle),rect定义矩形的结构(100,100)定义在图像上的坐标,后参数(80,80)表示矩形的宽度和高度,Scalar(255,255,0)为三个通道的值,-1表示矩形是填充的,如果为正数则表明矩形的边框线宽,line_8指定线得类型,0是抗锯齿的数值设置。namedWindow("像素位操作", WINDOW_FREERATIO);namedWindow("像素位操作", WINDOW_FREERATIO);imshow("像素位操作", dst);

2024-09-22 00:10:07 460

原创 第九节 Opencv自带颜色表操作

然后通过applyColorMap(image, dst, colormap[index % 19])将输入图像image按照选定的颜色映射进行处理,并将结果输出到dst图像中。--在opencv中applyColormap函数用于将颜色映射应用于输入图像,image输入单通道灰度图像,dst输出的三通道的彩色图像,colormap【。所以可以说是根据不断变化的index(由用户等待时间和键盘输入决定其变化)来从applyColorMap的可用颜色映射中选择对应的颜色映射,并将处理后的结果赋予dst。

2024-09-21 00:49:02 495

原创 第八节 键盘响应操作

-在opencv中代表等待按键事件,参数100代表等待时间(ms)在显示图像后调用waitKey(100),程序会暂停100ms等待用户按键。imshow("键盘响应", dst);imshow("键盘响应", dst);imshow("键盘响应", dst);--int类型发现esc为27,数字1代表49以此到51。--若不放在这里1到3会出错。

2024-09-20 22:09:38 322

原创 第七节 滑动操作调节对比度

createTrackbar("Value Bar:", "亮度调整" ,& light, max_value, on_track,(void*)(&image));createTrackbar("Value Bar:", "亮度调整" ,& light, max_value, on_track,(void*)(&image))--手动调用一次回调函数,在初始状态下显示调整亮度后的图像,这里传入的亮度值为50和图像的地址。addWeighted是 OpenCV 库中的一个函数,用于计算两个图像的加权和。

2024-09-20 00:04:42 505

原创 第六节 滚动条操作演示,调节图像亮度

createTrackbar("Value Bar:", "亮度调整", & lightness, max_value, on_tract);createTrackbar("Value Bar:", "亮度调整" ,& lightness, max_value, on_track);createTrackbar("Value Bar:","亮度调整",&lightness,max_value,on_tract);value:一个指向整数的指针,代表轨迹条的初始位置,同时这个整数值会随着轨迹的拖动而改变。

2024-09-18 21:43:52 589

原创 第五节图像像素的算数操作

/若没有uchar函数则有风险就是相加起来的值会超过255,uchar函数有一个功能就是小于0则设定为0,超过255则规定为255.限定在0-255之间。--三元素BGR.当改为乘法操作时会出现报错,原因是超过阈值。+add,减subtract,乘multiply,除divide。乘法运算,将image和m相乘给dst。个人理解,若有不对,请多指正。个人理解,若有不对,请多指正。修改参数来调节图片的参数。--初始化一个新的图像。

2024-09-17 23:42:06 906

原创 第四节 图像的读写操作

/current_row所指的位置取出一个值,取反,之后将结果存回该位置,并将指针移动到下一位置。//三个通道若为int型则是Vec3i 浮点型是vec3f,b是uchar类型。//获取当前像素,像素点每个像素值是字节类型就是uchar转换为int类型。/三个通道若为int型则是Vec3i 浮点型是vec3f,b是uchar类型。//获取当前像素,像素点每个像素值是字节类型就是uchar转换为int类型。--遍历图像的宽和高。

2024-09-17 21:21:00 875

原创 图像对象的创建与复制

std::cout << " width: " << m3.cols << " height " << m3.rows <<m3.channels<< std:end--其中channels没有在程序中体现,代表着通道数量,这样会出现一个问题就是更改通道数量就会只有第一列的值被改变了,如图。s代表整形c1代表单通道,8代表8位深度,深度决定图像的质量8,16,32,64.输出的将会是更改后的m4的代码。展示空白图片的长度和宽度。将会输出两个颜色的代码。

2024-09-17 01:38:10 372

原创 opencv第三节色彩空间转换

-色彩空间转换函数-cvtcolor将hsv图片转化为HSV格式和BGR格式,其中格式为void cv::cvtColor(InputArray src, OutputArray dst, int code, int dstCn = 0 );//namedWindow("输入图像", WINDOW_FREERATIO);//namedWindow("输入图像", WINDOW_FREERATIO);--类中的命名空间,避免命名冲突,后续可以直接在后续代码中使用该命名空间。

2024-09-16 01:15:05 696

原创 Opencv第二节,图像的读取与显示

-imread为读取图片信息其中包含有两个参数,一个参数为地址参数,由于imread一直读取的都是彩色图像,所有另一个参数可以改变图像的格式,例如灰度图像;但是当图片过于大的时候,imput窗口无法显示整张图片,可以调用函数nameWindow指令,格式为nameWindow(“”,flag)里面是窗口的名字,和flag。--imshow也有两个参数,一个是窗口的名称,另一个是图像的数据对象。注意,imshow所输出的图片会与图像大小永远保持一致,不能调整也无法调整所以使用后面namewindow指令。

2024-09-15 00:01:18 447

原创 opencv学习第一节

-std理解成一个大箱子,里面装满了标准库的东西,例如输出cout,存放数据的vector,用std::来调用指令,避免混乱,若自己定义cout,c不知道该调用哪一个<<为插入的意思,将"could not load image...."插入到std::cout中, std::endl;中,src将被赋值为从image.jpg文件读取到的图像数据(以cv::Mat的形式表示)。这里的src是一个变量名,cv::Mat src的意思是定义了一个cv::Mat类型的变量src。

2024-09-14 13:28:57 580

原创 新手OPen cv学习笔记(巨新)

face = face_detect.detectMultiScale(gary,1.01,5,0,(200,200),(300,300))(个人感觉有点笨)(不调节会导致锁定不准确,第一次锁定的是螺旋丸,第二次改为1.01后面不添加锁定范围,锁定的乱七八糟,第三次改为100-300锁定的是螺旋丸和头像,直到200-300才是人头。cv2.imwrite("F:/study8savepicture/"+str(num)+".123"+".jpg",Vshow)#p1是路径,p2是编号,p3录入的名字。

2024-03-27 15:45:19 924

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除