#include<iostream>
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<vector>
#include<opencv2/core/core.hpp>
using namespace std;
using namespace cv;class mat
{
public://颜色空间缩减,在实际图像处理中,仅用颜色中具有代表性的很小部分就可以达到预期的效果;//颜色空间缩减的做法:把0-9范围的像素值取为0;10~19范围的取为1;也就是通过舍掉//余数的方式得到较少的像素值。//步骤://1、遍历图像的每一个像素;//2、对像素应用公式:new=10*(old/10);void range(Mat& dst, int num,uchar *table){//判断是灰度图还是彩色图int dims = dst.channels();//遍历图像矩阵if (dims == 1){for (int j = 0; j < dst.rows; j++){uchar* image = dst.ptr<uchar>(j);for (int k = 0; k < dst.cols; k++){image[k] = table[image[k]];//图像大时这种方法更好//或者image[k] = image[k] / num * num;}}}if (dims == 3){vector<Mat> mv;split(dst, mv);//分离通道for (int j = 0; j < dst.rows; j++){uchar* image0 = mv[0].ptr<uchar>(j);uchar* image1 = mv[1].ptr<uchar>(j);uchar* image2 = mv[2].ptr<uchar>(j);for (int k = 0; k < dst.cols; k++){image0[k] = image0[k] / num * num;image1[k] = image1[k] / num * num;image2[k] = image2[k] / num * num;//或者image[k]=table[image[k]]}}merge(mv, dst);//cout << dst << endl;}}
};int main()
{Mat temp = imread("D:\\VC\\c++\\opencv源码\\opencv源码\\122.bmp");Mat src = imread("D:\\VC\\c++\\opencv源码\\opencv源码\\12.bmp",IMREAD_GRAYSCALE);cout << "temp.size()=" << temp.size() << "\ttemp.channels()=" << temp.channels() << endl;cout << "result.size()=" << src.size() << "\tresult.channels()=" << src.channels() << endl;Mat dst = src.clone();//定义公式int num = 10;//改变缩减程度uchar table[256];for (int i = 0; i < 256; i++){table[i] = num * (i / num);}mat p;p.range(dst,num,table);imshow("原图", src);imshow("缩减后的图", dst);waitKey(0);system("pause");return 0;
}

opencv颜色空间缩减相关推荐

  1. 10.马赛克原理之简单提高图像算法性能(颜色空间缩减和计时函数) --- OpenCV从零开始到图像(人脸 + 物体)识别系列

    本文作者:小嗷 微信公众号:aoxiaoji 关键词:颜色空间缩减和计时函数[两个简便的计时函数-getTickCount()和getTickFrequency()] 计时函数用途:计算耗时工作 颜色 ...

  2. 【OpenCV】OpenCV函数精讲之 -- 颜色空间缩减及LUT函数

    1.颜色空间缩减 颜色空间缩减的做法是:将现有颜色空间值除以某个输入值,以获得较少的颜色数.即做减法,比如颜色值0到9可取为新值0,10到19可取为10,以此类推. 有一个简单的公式来实现颜色空间缩减 ...

  3. 颜色空间缩减color space reduction

    颜色空间缩减公式       //---------------------------------[头文件.命名空间包含部分]-------------------------- // 描述:包含程 ...

  4. OpenCV颜色空间转换函数:cv::cvtColor介绍

    OpenCV颜色空间转换函数:cv::cvtColor介绍 Color Conversion Code(颜色转换代码) Enumerator COLOR_BGR2BGRA add alpha chan ...

  5. opencv中LUT函数实现颜色空间缩减

    opencv 2中的LUT函数为 : void LUT(InputArray src, InputArray lut, OutputArray dst,int   interpolation);  s ...

  6. OpenCV颜色空间——Lab颜色空间

    对于Lab颜色空间,OpenCV同样实现了BGR和Lab之间的转换,如果BGR的值在[0,1]之间,那么转换为Lab的取值范围为: ,, 通过以下程序调节L分量,观察其效果: #include< ...

  7. cv2.cvtColor(image,cv2.COLOR_RGB2BGR) opencv颜色空间的转换

    和常用的图像处理库不一样的是,opencv读取的图像是bgr格式.所以在使用plt 或者PIL工具进行显示的时候,需要十分注意要进行颜色空间的转换. import math import random ...

  8. opencv: 颜色空间转换(cv2.cvtColor) 探究(图示+源码)

    API Definition 我们从 OpenCV官网 的Miscellaneous Image Transformations 上,可查到 cv2.cvtColor 这个api的定义如下: cvtC ...

  9. 四、OpenCV颜色空间——HSV颜色模型

    教程汇总:python基础入门系列 该章节主要介绍两种颜色空间RGB与HSV,HSV将作为我们主要使用的颜色空间. RGB: 在计算机体系中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三 ...

最新文章

  1. 兆比特每秒和兆字节每秒_号称100兆、200兆的宽带,为什么实际下载速度只有几MB?...
  2. 初学python还是swift-零基础如何选择编程语言 小白的我研究了3个月得出一个结论...
  3. hive桌游中文规则_超火爆轻策桌游《小小城镇》新扩展——小金币大作为,邀你共筑繁荣小镇!...
  4. 几个复制表结构和表数据的方法
  5. 如何使用新浪微博相册作为markdown的图床
  6. 遍历文件夹还原数据库SQL语句
  7. iOS开发证件要点详解
  8. python计算长方形面积代码_Python计算两个矩形重合面积代码实例
  9. 首个教育部印发的人工智能行动计划出炉:规划三步走,大学有三任务
  10. Android之ListView刷新某一项Item
  11. 用 QuantLib 给国债估值
  12. 【中级计量经济学】Lecture 8 虚拟变量回归
  13. WSDM2021推荐系统论文集锦
  14. 点点动画~画出懂你的3D魔方
  15. win10下卸载office2010(测试多种方法后,成功实现)
  16. 社科院与杜兰大学金融管理硕士——承载梦想,带自己遨游世界的“风帆”
  17. 广义互相关 matlab,关于小波分析和广义互相关
  18. 买二手房(存量房)注意点
  19. 微信插件第一讲之自动回复机器人(护妻宝)
  20. v7000存储硬盘离线如何恢复数据

热门文章

  1. pip install numpy/pandas时报错的解决方法
  2. Android selector 使用注意.
  3. SP5971 LCMSUM
  4. js 动态加载select触发事件
  5. Python中按值来获取指定的键
  6. 一个KVO 实现WKWebView加载进度条的例子 (注意最后移除观察者)
  7. 智能开发框架 JEECG 作者张代浩专访
  8. Python 学习笔记01
  9. php中$_REQUEST、$_POST、$_GET的区别和联系小结
  10. AE 9.3代码 升级到AE10.0