一起学opencv2 (三) 扫描图像 COLOR REDUCE
来源:互联网 发布:房子是用来住的 知乎 编辑:程序博客网 时间:2024/06/06 14:15
说明:
彩色图像像素形式为3通道像素,每个通道数据格式为8-bitunsigned char ,因此数据总量为256x256x256 ,这些彩色数据对于计算机来讲处理将占用大量内存和CPU为此,希望通过降低彩色数的方式,降低至256/Nx256/Nx256/N。数据形式是从图片左上角开始,在opencv中默认BGR。有的计算机芯片处理数据为4的倍数,因此如果超出的部分将不会记录。假定图片色度范围为0-255,N选取为64则 色彩数降低为4X4X4;换算公式为 data=data/N*N+N/2;data/N获得
色度区间 0-64->0 64-128->1 128-192->2 128-256->3 ,再乘以N,为0 64 128 192, 再加N/2 ,4个色度变为 32 96 160 224,即彩色图的每个通道(,B,G,R)只有4种颜色,整幅图将只有4*4*4种颜色,对于灰度图将只有四种颜色,好像我弄错了,每个通道表示的是灰度值,因此是只有4个亮度点
程序:
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>void colorReduce(cv::Mat &image, int div=64){int nl = image.rows;//number of linesint nc = image.cols * image.channels();//total number of elements(pixel) per linefor (int j = 0; j < nl; j++){uchar* data = image.ptr<uchar>(j);//get the address of rowfor (int i = 0; i < nc; i++){data[i] = data[i] / div*div + div / 2;}}}int main(){cv::Mat image = cv::imread("bfg.jpg",<span style="background-color: rgb(255, 0, 0);">CV_LOAD_IMAGE_UNCHANGED</span>);colorReduce(image);cv::namedWindow("Image");cv::imshow("Image", image);cv::waitKey(0);}彩色图运行结果
<span style="background-color: rgb(255, 0, 0);">CV_LOAD_IMAGE_UNCHANGED 改为</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">CV_LOAD_IMAGE_GRAYSCALE</span>
灰度运行结果
1 0
- 一起学opencv2 (三) 扫描图像 COLOR REDUCE
- 一起学opencv2(一)
- reduce color
- 一起学python(三)
- 一起学opencv2 (四) 图片的整合
- 一起学Netty(三)之 SimpleChannelInboundHandler
- 一起学Netty(三)之 SimpleChannelInboundHandler
- 菜鸟跟大家一起学ndk(三)
- 一起艳学Centos7(三)
- 大家一起学爬虫(三)
- 一起学Netty(三)之 SimpleChannelInboundHandler
- 一起说说 map-reduce
- 一起学opencv2(二) 诠释像素+添加salt-and-pepper 噪声
- 一起学ROS之安装ROS(ubuntu+ros+opencv2.4.9+kinect V2 安装教程)
- 学习Opencv2.4.9(三)---图像的基本运算
- OPENCV2 访问图像像素值的三种方法
- 学习Opencv2.4.9(三)---图像的基本运算
- OPENCV2 访问图像像素值的三种方法
- 接口调用以及memcache的使用
- 重新认识Eclipse--快捷键
- java-面向对象-面试题《下》
- 销售凭证中的几个日期
- linux下生成.so并运行程序加载该.so
- 一起学opencv2 (三) 扫描图像 COLOR REDUCE
- canal-client的HA功能验证
- linux基础学习
- mysql alter
- grub rescue问题的解决
- RS232/RS422/RS485比较
- stl中常用容器详解
- eclipse中 中文注释乱码
- 净空法师:同修净土与般若