opencv3 学习四 - 图像减色
2024-08-24 17:26:24
程序如下
#include "opencv2/opencv.hpp"
using namespace cv;
int main()
{
// 灰度图
Mat original = imread("girl.jpg",CV_LOAD_IMAGE_GRAYSCALE);
Mat modified = imread("girl.jpg",CV_LOAD_IMAGE_GRAYSCALE);
// 彩色图
//Mat original = imread("girl.jpg",CV_LOAD_IMAGE_COLOR);
//Mat modified = imread("girl.jpg",CV_LOAD_IMAGE_COLOR);
for (int r = 0; r < modified.rows; r++)
{
for (int c = 0; c < modified.cols; c++)
{
// 灰度图
modified.at<uchar>(r, c) = modified.at<uchar>(r, c) * 0.6;
// 彩色图
//modified.at<Vec3b>(r, c)[0] = modified.at<Vec3b>(r, c)[0] * 0;
//modified.at<Vec3b>(r, c)[1] = modified.at<Vec3b>(r, c)[1] * 0;
//modified.at<Vec3b>(r, c)[2] = modified.at<Vec3b>(r, c)[2] * 0;
}
}
imshow("Original", original);
imshow("Modified", modified);
waitKey();
return 0;
}
运行结果如下:
图像减色
通过图像行列,遍历图像的每个像素,通过Mat的成员函数at<>,把每个通道的像素值减少, 但这种方法较慢。
灰度图
灰度图只有一个通道,效果见下图。代码如下:
modified.at<uchar>(r, c) = modified.at<uchar>(r, c) * 0.6;
彩色图
彩色图有三个通道,分别对每个通道减色, 每次只运行下面一条语句, 读取时采用 CV_LOAD_IMAGE_COLOR。程序如下:
modified.at<Vec3b>(r, c)[0] = modified.at<Vec3b>(r, c)[0] * 0;
modified.at<Vec3b>(r, c)[1] = modified.at<Vec3b>(r, c)[1] * 0;
modified.at<Vec3b>(r, c)[2] = modified.at<Vec3b>(r, c)[2] * 0;
效果见图。
最新文章
- Hyper-v 安装CentOS 7 (其他虚拟机一样参考)
- 只需2分钟,简单构建velocity web项目
- GetStoredProcCommand和GetSqlStringCommand的区别
- [No00004A]为什么你看了很多书,却依然没有洞见
- [3].jekyll的基础
- 晒自己做的一个管理系统(清新风格)EasyUI
- 将存储在本地的大量分散的小文件,合并并保存在hdfs文件系统中
- hihoCoder#1014 Trie树 (前缀树)
- awk处理之案例三:awk去掉不需要的文本行
- eval(";(";+json对象+";)";)
- linq读书笔记2-查询内存中的对象
- Aix字符集
- 4-jQuery - AJAX post()
- Wincc flexable的按钮组态
- 企业级镜像仓库harbor搭建
- Datediff的使用(统计本日,昨日,本周,本月)
- 转://Window下安装Oracle ASM单实例数据库
- (第一篇) 一步一步带你了解linq to Object
- bootstrap-treeview的 简单使用
- 使用wmic.exe绕过应用程序白名单(多种方法)
热门文章
- UVaOJ 694 - The Collatz Sequence
- SVNKit学习——使用低级别的API(ISVNEditor接口)直接操作Repository的目录和文件(五)
- vue + element-ui 制作tab切换(切换vue组件,踩坑总结)
- DOS下常用命令
- January 18 2017 Week 3 Wednesday
- shared_ptr 的使用及注意事项
- AngularJs学习笔记--E2E Testing
- IntelliJ IDEA中 查看某个类中的所有方法
- 20、Springboot 与数据访问(JDBC/自动配置)
- 13、SpringBoot-CRUD员工修改操作/删除