OpenCV——彩色图像转成灰度图像
来源:互联网 发布:淘宝开书店需要什么 编辑:程序博客网 时间:2024/06/08 19:57
// PS_Algorithm.h
#ifndef PS_ALGORITHM_H_INCLUDED
#define PS_ALGORITHM_H_INCLUDED
#include <iostream>#include <string>
#include "cv.h"
#include "highgui.h"
#include "cxmat.hpp"
#include "cxcore.hpp"
using namespace std;using namespace cv;
#endif // PS_ALGORITHM_H_INCLUDED
/*
The program will transfor the color
image to the gray image.
The image must be color image.
*/
#include "PS_Algorithm.h"
int main()
{
string Image_name("2.jpg");
Mat Image=imread(Image_name.c_str());
Mat Image_test(Image.size(),CV_32FC3);
Image.convertTo(Image_test, CV_32FC3);
Mat Gray_img(Image_test.size(), CV_32FC1);
Mat r,g,b;
Gray_img.copyTo(r);
g=r;
b=r;
Mat bgr[]={b,g,r};
split(Image_test, bgr);
b=bgr[0];
g=bgr[1];
r=bgr[2];
Mat I1,I2,I3;
I1=r;
I2=r;
I3=r;
// I=0.299*R+0.587*G+0.144*B 方案一
Gray_img=(0.299*r+0.587*g+0.144*b);
I1=Gray_img/255;
imshow("I1", I1);
// I=(R+G+B)/3 方案二
Gray_img=(0.333*r+0.333*g+0.333*b);
I2=Gray_img/255;
for(int i=100; i<105; i++)
for(int j=100; j<105; j++)
cout<<I2.at<float>(i,j)<<endl;
imshow ("I2", I2);
// I=max(R,G,B) 方案三
float *p1,*p2,*p3,*p;
p1=r.ptr<float>(0);
p2=g.ptr<float>(0);
p3=b.ptr<float>(0);
p=I3.ptr<float>(0);
int nums;
nums=Gray_img.rows*Gray_img.cols;
for (int i=0; i<nums; i++)
p[i]=max(p1[i],max(p2[i],p3[i]))/255;
imshow("I3",I3);
cout<<"All is well."<<endl;
waitKey();
}
- OpenCV——彩色图像转成灰度图像
- Opencv: 彩色图像转成灰度图像并保存
- openCV彩色图像转换为灰度图像
- opencv彩色图像与灰度图像叠加
- 彩色图像->灰度图像:
- 灰度图像彩色图像
- OpenCV彩色图像转灰度图
- 【Android】使用OpenCV彩色图像转灰度图像
- OpenCV遍历彩色图像、灰度图像的像素值方法
- opencv彩色图像(RGB)转灰度图像及其优化
- opencv把一个彩色图像加载成灰度图像
- 彩色图像灰度化
- 灰度图像彩色化
- 灰度图像彩色化
- 彩色图像灰度化
- 彩色图像转灰度图像
- 图像矩阵——灰度与彩色图
- 图像边缘检测—sobel算子(灰度图像,彩色图像)
- 如何配置svn中的权限,用户组权限和用户名
- Android新手:新版ADT处理Fragment、actionbar和style的方法
- Tomcat部署WebApp
- maven scope含义的说明
- acm 行车路程
- OpenCV——彩色图像转成灰度图像
- php把excel表格中的数据导入到mysql数据库
- 输入无限长的字符
- kettle中抽取数据时ORA-01461错误的解决办法
- 同一台电脑部署多个tomcat服务器图解教程
- Bootstrap网站模板
- input子系统详解
- oracle常用函数(1)
- Android设置Activity背景为透明style