【第三课:C++和opencv】图像反转
来源:互联网 发布:淘宝`热带鱼活体 编辑:程序博客网 时间:2024/05/22 06:18
图像反转就是黑白颠倒,若像素px= 0,则反转后px=255。公式:反转后的像素a= 255- a。
主要作用:增强图像的暗区中白色或灰色的细节,特别是黑色面积在尺寸上占主导地位时。
好了不说了,先上代码:
PS:代码使用直接访问像素的,直接访问图片的像素有很多种。
// 图像的反转.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int _tmain(int argc, _TCHAR* argv[]){Mat src;int height;int width;int i;int j;//载入图片src= imread("F://Opencv_picture//1212.jpg");if(!src.data){ cout<<"Could not open or find image."<< endl; return -1;}//获取图像信息height= src.rows; width= src.cols* src.channels(); // 列项要乘通道数//创建窗口namedWindow("src", CV_WINDOW_AUTOSIZE);namedWindow("dst", CV_WINDOW_AUTOSIZE); //显示图片imshow("src", src);//图像反转for(i= 0; i< height; i++){ for(j=0; j< width; j++){src.at<uchar>(i, j)= 255- src.at<uchar>(i, j); // 每一个像素反转}}//显示图片imshow("dst", src);waitKey(0);return 0;}
结果图:
分析:反转后凸显出病变了的区(黑色部分)
PS:
一:at<uchar>也是在Mat类中定义了的模板
二: 在检验是否加载了图片时,有两种方法
(1)if(!image.data) { };
(2) if(image.empty()) { }; // empty()是Mat类中定义的模板
- 【第三课:C++和opencv】图像反转
- 【第四课:C++和opencv】图像反转
- opencv-图像反转和翻转
- opencv之图像反转
- opencv图像反转/截取
- opencv基础 图像反转问题解决
- 学习opencv第三章矩阵和图像操作
- OpenCV简单例子之图像反转
- ios--OpenCV--图像像素颜色反转
- opencv视频学习第三课(显示图像)笔记整理
- opencv(c++)图像操作
- C#|RBG图像转灰度图像与图像灰度反转
- 分别用Eigen和C++(OpenCV)实现图像(矩阵)转置
- opencv(C++)扫描图像,查找表和时间测量
- opencv(c++)改变图像的对比度和亮度
- C++\opencv 图像拼接算法
- opencv(c++)-图像基本操作
- 图像反转
- CSS学习篇核心之——盒子模型
- 使用CopperCube(IrrEdit)创建Irrlicht场景
- IBM AIX 7.1 下载地址
- 进程控制:创建执行其他程序的进程
- JavaWeb_session_用户登录
- 【第三课:C++和opencv】图像反转
- oracle基本语法2
- Linux网络编程 之 TCP 多线程的服务器和客户端同时收发数据
- 不会编程该怎么成立初创公司呢?
- 沈阳改派怎么办?
- Windows 消息分类
- C#中"浅复制"与"深复制"的区别
- ADB server didn’t ACK解决
- oracle创建用户和找回密码