最近学了点opencv,买了毛星云的书,大力推荐哦。

颜色缩减,自己加了个Trackbar看起来更直观一些。

我一般自己先看一遍程序,脑子里有个大概印象了,再自己写一遍,这样出了错误会印象更深刻。

1. Mat.type( )括号不能丢

2. Mat.channels()括号不能丢

3.创建Trackbar的函数createTrackbar(TrackbarName, WINDOWNAMAE, &sliderValue, maxSliderValue,onTrackbar);

这里onTrackbar是一个回调函数,写在creatTrackbar里时,不用()

在写这个函数时,是要加括号的,调用时候也是哦,

onTrackbar(int , void*)

int 实slierValue,void* 填0貌似就可以了

4.  创建Trackbar之前,一定要

namedWindow(WINDOWNAME, 1);

如果没有此句,就不显示Trackbar,很重要哦 ,这里我犯了错。

char TrackbarName[50];
sprintf(TrackbarName, "颜色缩减值%d",divslider);

这句是用来显示滑动条上说明文字,还是加上比较好。

5.  自己画蛇添足地在onTrackbar 回调函数上加了个while(1),其实不用啦!

6. 颜色缩减函数很容易懂,就不说了。不过不太明白为啥要 data[j] = data[j] / div*div+div/2   这个div/2我不太懂。没有用div/2 也好用来着。

代码如下,要先在工程文件里有个“dota.jpg”

#include <opencv2/opencv.hpp>
#include<highgui.hpp>using namespace cv;
using namespace std;
#define WINDOWNAME "dstImg"
int maxdiv = 255;
Mat dstImg,srcImg;
int divslider;
void colorReduce(Mat& src, Mat& dst, int div);
void on_Trackbar(int ,void*);int main(){divslider = 20;srcImg = imread("dota.jpg", 1);dstImg.create(srcImg.cols,srcImg.rows, srcImg.type());imshow("srcImg", srcImg);namedWindow(WINDOWNAME, 1);//如果没有此句,就不显示Trackbar。char TrackbarName[50];sprintf(TrackbarName, "颜色缩减值%d",divslider);createTrackbar("reduce div", WINDOWNAME, &divslider, maxdiv, on_Trackbar);on_Trackbar(divslider, 0);waitKey(0);return 0;
}void on_Trackbar(int, void*){if (divslider > 0){colorReduce(srcImg, dstImg, divslider);imshow(WINDOWNAME, dstImg);}
}void colorReduce(Mat& src, Mat& dst, int div){dst = src.clone();int rowNum = dst.rows;int colNum = dst.cols * dst.channels();for (int i = 0; i < rowNum; i++){uchar* data = dst.ptr<uchar>(i);for (int j = 0; j < colNum; j++)data[j] = data[j] / div*div;}
}

转载于:https://www.cnblogs.com/xy123001/p/5218659.html

颜色缩减(带Trackbar)【从毛星云Opencv3编程入门P75 P111例程改编】相关推荐

  1. 《OpenCV3编程入门-毛星云》第三部分 掌握imgproc组件

    平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10 截止今天我终于把<OpenCV3编程入门-毛星云>这本书看完了,看了将近两个月终于看 ...

  2. 图像识别(5)——《OpenCV3编程入门-毛星云》第三部分 掌握imgproc组件

    博主QQ:1356438802 QQ群:473383394--UVC&OPENCV473383394 平台:Win7 64bits + Visual Studio 2012 + OpenCV  ...

  3. OpenCV3编程入门(毛星云)之视频读取与播放

    OpenCV3编程入门(毛星云)之视频读取与播放,看看运行截图: 看来OpenCV API封装得太好了..努力,努力,再努力~~~

  4. 图像识别(2)——《OpenCV3编程入门》毛星云编著

    博主QQ:1356438802 QQ群:473383394--UVC&OpenCV47 最近几天开始收集图像识别的相关资料: 程序开源库主要就是OpenCV,这是主流工具,所以我暂时也没去了解 ...

  5. OpenCV3编程入门(毛星云)之用滚动条控制两图片的混合

    OpenCV3编程入门书本上的示例,copy下来学习学习~~代码如下: 美女1 美女2 #include <opencv2/opencv.hpp> using namespace cv; ...

  6. 【OpenCV学习】 《OpenCV3编程入门》--毛星云 01 邂逅OpenCV(OpenCV基本概念与基本架构) ROS系统上的运用(python实现)

    对 <OpenCV3编程入门>第一章的学习笔记:理解什么是计算机视觉,什么是OpenCV,以及其中的联系等等. PS:此书为2014年出版,opencv的版本和接口也与现在有些不一致了,作 ...

  7. 【资源】OpenCV3编程入门_毛星云

    OpenCV在计算机视觉领域扮演着重要的角色.作为一个基于开源发行的跨平台计算机视觉库,OpenCV实现了图像处理和计算机视觉方面的很多通用算法.<OpenCV3编程入门>以当前最新版本的 ...

  8. 原创 OpenCV3编程入门 学习笔记(总)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_36163358/article/ ...

  9. OpenCV3编程入门 学习笔记(总)

    OpenCV3编程入门 学习笔记 2018.12.12-2018.12.29 此博客为在看过毛星云版<OpenCV3编程入门>后所总结的一本笔记,可供复习使用. 文章目录 OpenCV3编 ...

最新文章

  1. grpc 传递上下文_grpc 源码笔记 02:ClientConn
  2. ESP8266-SDK的硬件定时器
  3. ThreadLocal是什么?
  4. linux iptables 如何设置允许几个 ip访问,Linux防火墙iptables限制几个特定ip才能访问服务器。...
  5. 阿里云移动测试平台MQC移动测试沙龙第3期【北京站】
  6. CodeForces 903D Almost Difference
  7. Leetcode题目:Valid Anagram
  8. 大型程序是如何开发的_小程序开发好之后如何引流
  9. vue 图片自适应排列插件_vue自适应布局3种方法
  10. java第七章jdbc课后简答题_jsp编程基础第七章习题
  11. Silverlight 用户代码未处理 TypeLoadException
  12. numpy-np.concatenate
  13. python 矩阵点乘_Python之Numpy库基础——矩阵运算
  14. 基于Matlab的车牌号识别
  15. java中display1_关于displaytag1.1的两种分页
  16. 大文件上传下载实现思路,分片、断点续传代码实现,以及webUpload组件
  17. 9.4 多元复合函数求导
  18. 干货 | 京东云托管Kubernetes集成镜像仓库并部署原生DashBoard
  19. 敏捷项目管理21天学习计划--敏捷生命周期
  20. 【渝粤教育】国家开放大学2019年春季 1292企业集团财务管理 参考试题

热门文章

  1. 马斯克遭“天劫”:40颗星链卫星葬身地磁风暴,数千万美元打了水漂
  2. AI给老照片上色,真的准吗?技术圈和历史圈吵了1000帖
  3. 最新中文NLP开源工具箱来了!支持6大任务,面向工业应用 | 资源
  4. Linux命令——expr
  5. RocketMQ(六):namesrv再探
  6. 【290】Python 函数
  7. 关于Cocos2d-x中精灵节点的透明度的设置
  8. Ext4 MVC CRUD操作
  9. Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片...
  10. Python编程系列教程第16讲——拷贝自身到系统目录