opencv颜色空间缩减
#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颜色空间缩减相关推荐
- 10.马赛克原理之简单提高图像算法性能(颜色空间缩减和计时函数) --- OpenCV从零开始到图像(人脸 + 物体)识别系列
本文作者:小嗷 微信公众号:aoxiaoji 关键词:颜色空间缩减和计时函数[两个简便的计时函数-getTickCount()和getTickFrequency()] 计时函数用途:计算耗时工作 颜色 ...
- 【OpenCV】OpenCV函数精讲之 -- 颜色空间缩减及LUT函数
1.颜色空间缩减 颜色空间缩减的做法是:将现有颜色空间值除以某个输入值,以获得较少的颜色数.即做减法,比如颜色值0到9可取为新值0,10到19可取为10,以此类推. 有一个简单的公式来实现颜色空间缩减 ...
- 颜色空间缩减color space reduction
颜色空间缩减公式 //---------------------------------[头文件.命名空间包含部分]-------------------------- // 描述:包含程 ...
- OpenCV颜色空间转换函数:cv::cvtColor介绍
OpenCV颜色空间转换函数:cv::cvtColor介绍 Color Conversion Code(颜色转换代码) Enumerator COLOR_BGR2BGRA add alpha chan ...
- opencv中LUT函数实现颜色空间缩减
opencv 2中的LUT函数为 : void LUT(InputArray src, InputArray lut, OutputArray dst,int interpolation); s ...
- OpenCV颜色空间——Lab颜色空间
对于Lab颜色空间,OpenCV同样实现了BGR和Lab之间的转换,如果BGR的值在[0,1]之间,那么转换为Lab的取值范围为: ,, 通过以下程序调节L分量,观察其效果: #include< ...
- cv2.cvtColor(image,cv2.COLOR_RGB2BGR) opencv颜色空间的转换
和常用的图像处理库不一样的是,opencv读取的图像是bgr格式.所以在使用plt 或者PIL工具进行显示的时候,需要十分注意要进行颜色空间的转换. import math import random ...
- opencv: 颜色空间转换(cv2.cvtColor) 探究(图示+源码)
API Definition 我们从 OpenCV官网 的Miscellaneous Image Transformations 上,可查到 cv2.cvtColor 这个api的定义如下: cvtC ...
- 四、OpenCV颜色空间——HSV颜色模型
教程汇总:python基础入门系列 该章节主要介绍两种颜色空间RGB与HSV,HSV将作为我们主要使用的颜色空间. RGB: 在计算机体系中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三 ...
最新文章
- 兆比特每秒和兆字节每秒_号称100兆、200兆的宽带,为什么实际下载速度只有几MB?...
- 初学python还是swift-零基础如何选择编程语言 小白的我研究了3个月得出一个结论...
- hive桌游中文规则_超火爆轻策桌游《小小城镇》新扩展——小金币大作为,邀你共筑繁荣小镇!...
- 几个复制表结构和表数据的方法
- 如何使用新浪微博相册作为markdown的图床
- 遍历文件夹还原数据库SQL语句
- iOS开发证件要点详解
- python计算长方形面积代码_Python计算两个矩形重合面积代码实例
- 首个教育部印发的人工智能行动计划出炉:规划三步走,大学有三任务
- Android之ListView刷新某一项Item
- 用 QuantLib 给国债估值
- 【中级计量经济学】Lecture 8 虚拟变量回归
- WSDM2021推荐系统论文集锦
- 点点动画~画出懂你的3D魔方
- win10下卸载office2010(测试多种方法后,成功实现)
- 社科院与杜兰大学金融管理硕士——承载梦想,带自己遨游世界的“风帆”
- 广义互相关 matlab,关于小波分析和广义互相关
- 买二手房(存量房)注意点
- 微信插件第一讲之自动回复机器人(护妻宝)
- v7000存储硬盘离线如何恢复数据