opencv中对图像的像素操作
2024-10-20 16:45:00
1.对灰度图像的像素操作:
#include<iostream>
#include<opencv2/opencv.hpp> using namespace std;
using namespace cv; int main(int argc, char **argv)
{
Mat src = imread("D:/meinv.jpg");
namedWindow("源图像",CV_WINDOW_AUTOSIZE);
imshow("源图像",src);
/*Mat gray;
cvtColor(src, gray, CV_BGR2GRAY);
imshow("灰度图像", gray);*/
/* 对灰度图像的像素改写
int height = src.rows;
int width = src.cols;
int channels = src.channels();
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
int gray_data = gray.at<uchar>(i, j);
gray.at<uchar>(i, j) = 255 - gray_data;
}
}
imshow("反色图像", gray);*/
}
显示结果:
(1)彩色图像
(2)灰度图像
(3)反色图像
2.对彩色图像像素的操作
Mat dst;
dst.create(src.size(), src.type());
int height = src.rows;
int width = src.cols;
int channels = src.channels(); for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
int b = src.at<Vec3b>(i, j)[0];
int g = src.at<Vec3b>(i, j)[1];
int r = src.at<Vec3b>(i, j)[2]; dst.at<Vec3b>(i, j)[0] = 255 - b;
dst.at<Vec3b>(i, j)[1] = 255 - g;
dst.at<Vec3b>(i, j)[2] = 255 - r;
}
}
//进行反色的另一种方法:调用API
/*bitwise_not(src, dst);*/
imshow("反色图像",dst);
imwrite("D:/dst.jpg", dst);
waitKey(0);
return 0;
显示结果:
最新文章
- GAME AI Pro 1 第1章
- C# 生成条形码图片,效果不错
- easyui datagrid加载json
- 深入了解SQL注入绕过waf和过滤机制
- Javascript模块化编程(一):模块的写法 作者: 阮一峰
- 【easyui】--普通js中获取easyui中分页信息(page,pageSize等)
- R与数据分析旧笔记(十五) 基于有代表性的点的技术:K中心聚类法
- 请慎用java的File#renameTo(File)方法(转)
- cocos2d-x适配多分辨率
- 加减号改变input[type=number]的数值,基于[zepto.js]
- git日常使用经验积累
- Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)
- mysql5.6 主从同步配置
- Tronado自定义Form组件
- Torch或Numpy
- python 爬取历史天气
- [工具]cmd命令大全
- 代码面试集锦 2 - Google
- Oracle 12C -- 扩展varchar2、nvarchar2、和raw数据类型的大小限制
- SpingBoot三——基础架构
热门文章
- 浏览器警告:provisional headers are shown
- Cordova各个插件使用介绍系列(八)—$cordovaCamera筛选手机图库图片并显示
- System Center Configuration Manager 2016 配置安装篇(Part2)
- redis笔记(三)
- vscode:快速生成html的方法
- BZOJ 4502: 串 AC自动机
- Sublime插件支持Sass编译和Babel解析ES6 &; .sublime-build文件初探(转载自imwtr)
- 使用ABAP代码创建S/4HANA里的Sales Order
- py常见模块
- 火车进站输出路径(HDU1022)