OpenCV像素点操作 图片特效
目录
一:图片的读取显示
二:OpenCV像素点操作
雪花屏特效
色彩反转
暗色处理
毛玻璃特效
三:OpenCV库函数的使用
高斯模糊
XY轴模糊
灰度化处理
中值滤波
四:OpenCV视频处理
播放视频:那些年,我们一起追的女孩
调用本机摄像头
一:图片的读取显示
对于读取图片的路径选择,
需要注意 是window下 \ 但是在ubuntu下是 / 在编写代码的时候需要修正
图片的读取显示
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片waitKey(0);//等待按键return 0;
}
效果
对图片可以滚轮放大查看RGB数值,不难看出,越是深色RGB数值越是接近0,越是浅色RGB数值越是接近255
查看分辨率 499 X 355,同时将鼠标移动至图片边缘处(看到 x=498,y=334 博主已经很尽力移到边缘啦,如果不信,你们自己操作一下,哈哈),
由此可以知道图片就是由一个又一个的像素点构成的
二:OpenCV像素点操作
雪花屏特效
雪花屏特效实现
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;Mat imageprocess(Mat &img)
{int row = img.rows;int col = img.cols * img.channels();for(int i=0;i<row;i++){uchar * data = img.ptr<uchar>(i);for(int j=0;j<col;j++){//雪花屏特效int q = rand()%col;data[q]=155;//某些通道随机改成155}}return img;
}int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg = imageprocess(img);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}
色彩反转
色彩反转实现
Mat imageprocess(Mat &img)
{int row = img.rows;int col = img.cols * img.channels();for(int i=0;i<row;i++){uchar * data = img.ptr<uchar>(i);for(int j=0;j<col;j++){//色彩反转data[j] = data[j] - 50;}}return img;
}
暗色处理
暗色处理实现
Mat imageprocess(Mat &img)
{int row = img.rows;int col = img.cols * img.channels();for(int i=0;i<row;i++){uchar * data = img.ptr<uchar>(i);for(int j=0;j<col;j++){//暗色处理data[j] = data[j]/2;}}return img;
}
毛玻璃特效
毛玻璃特效实现
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;//毛玻璃特效
Mat imageGalss(Mat &img)
{RNG rng;int random = 0;int num = 5;for(int i=0;i<img.rows -5;i++){for(int j=0;j<img.cols -5;j++){random = rng.uniform(0,num);img.at<Vec3b>(i,j)[0] = img.at<Vec3b>(i+random,j+random)[0];img.at<Vec3b>(i,j)[1] = img.at<Vec3b>(i+random,j+random)[1];img.at<Vec3b>(i,j)[2] = img.at<Vec3b>(i+random,j+random)[2];}}return img;
}int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg = imageGalss(img);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}
三:OpenCV库函数的使用
高斯模糊
高斯模糊,如下图,就好像 近视眼的人没有戴眼镜看事物的情境(轻度近视)
高斯模糊实现
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg;//高斯模糊cv::GaussianBlur(img,resimg,Size(5,5),0);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}
XY轴模糊
XY轴模糊,就好像 近视眼的人没有戴眼镜看事物的情境(重度近视)
XY轴模糊实现
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg;//XY轴模糊cv::blur(img,resimg,Size(10,10));imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}
灰度化处理
灰度化处理实现
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg;//灰度处理cvtColor(img,resimg,CV_BGR2GRAY);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}
中值滤波
中值滤波,视觉上就感觉像是油画
中值滤波实现
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg;//中值滤波cv::medianBlur(img,resimg,5);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}
四:OpenCV视频处理
播放视频:那些年,我们一起追的女孩
视频播放实现
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat frame;VideoCapture cap("D:/000000000000000ffmpeg/那些年,我们一起追的女孩.mp4");while (cap.read(frame)){imshow("frame",frame);waitKey(50);}return 0;
}
调用本机摄像头
如下图,可以调用本地摄像头
调用本地摄像头 实现
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat frame;VideoCapture cap(0);while (cap.read(frame)){imshow("frame",frame);waitKey(50);}return 0;
}
OpenCV像素点操作 图片特效相关推荐
- opencv+tensorflow手势识别+图片特效
一.效果展示 手势识别+特效展示!(此处只录入四种,简单运行!!!) 二. 项目介绍 本次项目是在上一篇博文上的改进版本,在此次设计中录入了四种手势增加了训练图片和训练轮数,使得准确率提升,并且改进了 ...
- TensorFlow与OpenCV,读取图片,进行简单操作并显示
本文是OpenCV 2 Computer Vision Application Programming Cookbook读书笔记的第一篇.在笔记中将以Python语言改写每章的代码. PythonO ...
- Python-OpenCV 处理图像(三):图像像素点操作
0x01. 像素 有两种直接操作图片像素点的方法: 第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作第四行第四列的像素点就直接 im[3,3] 就可以获取到这个点的RGB ...
- Python-OpenCV 处理图像(二)(三):滤镜和图像运算 图像像素点操作
0x01. 滤镜 喜欢自拍的人肯定都知道滤镜了,下面代码尝试使用一些简单的滤镜,包括图片的平滑处理.灰度化.二值化等: import cv2.cv as cvimage=cv.LoadImage('i ...
- android Bimtap 各种图片处理方法、图片特效
原帖地址:http://gundumw100.iteye.com/blog/849729 Java代码 //压缩图片大小 public static Bitmap compressImage(Bi ...
- opencv打开的图片应用于nn.Conv2d()(一)(H, W, C)转为 (C, H, W)
在深度学习领域,使用opencv打开的图片格式是:(H, W, C),而pytorch中的卷积函数nn.Conv2d()使用的数据格式是:(T, C, H, W) T 代表的是迷你批次,即一次传入多少 ...
- OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法
OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法 前言: 以前笔者在项目中经常使用到OpenCV的算法,而大部分OpenCV的算法都需要进行遍历操作,而且很多遍历操作都是需要对目标像素点的 ...
- opencv 图像操作,常用 OpenCV 内置函数
OpenCV 如何对图像的像素进行操作 对图像的像素进行操作,我们可以实现空间增强,反色,大部分图像特效系列都是基于像素操作等目的.先来看一下内存空间中图像矩阵,也就是Mat的矩阵数值部分是怎么存储的 ...
- opencv中图像处理油画特效
opencv中图像处理油画特效 import cv2 import numpy as np import random import mathimg = cv2.imread(r"C:\Us ...
- Ubuntu系统安装opencv详细操作及具体应用
Ubuntu系统安装opencv详细操作及具体应用 前言 一.opencv是个什么东西 二.opencv的安装 1.资源准备及前期准备 2.安装编译 3.配置更改 4.验证版本 三.opencv应用 ...
最新文章
- 客快物流大数据项目(七):Docker总结
- html设备监控系统模板,蓝色的远程监控设备系统后台管理界面模板
- Linux下使用Speedtest测试网速教程
- html quot代替src,html特效代码大全
- 【Android】动态UI : LayoutParams.addRule(...) LayoutParams.addRule(..., ...)
- Blend4Web —— 开源的 WebGL 框架
- 中国人民大学金琴老师组,AI·M^3实验室招募视觉与语言方向硕博
- 基于RNGCryptoServiceProvider的洗牌算法
- poi 操作excel的处理
- 关于Android Studio Arctic Fox版本找不到Database Inspection这件事
- 【ArcGIS小技巧视频教程】(3):五分钟搞定地图矢量化
- 网狐6603全部架设过程棋牌源码下载搭建教程
- cubieboard刷机
- 监控摄像头进行网页直播和微信直播的技术方案
- WordPress个人博客Cosy3.1.3主题+积木部分插件
- CoreOS为Kubernetes量身打造分布式存储方案Torus
- can‘t connect to mysql server on localhost解决办法。 net start mysql——无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
- php模拟苹果手机访问,php 使用curl模拟ip和来源进行访问的实现方法
- Ghost 使用详解
- 下个月去北京了,心如一团乱麻好多事情要解决,但是不知道从哪里开始,还是顺其自然吧,一件件的解决...