opencv图像处理
文章平均质量分 71
Mutou_33
单纯的个人存档
展开
-
角点绘制2
算法原理:http://blog.csdn.net/lcc_633/article/details/52691311算法详细步骤:第一步:计算图像X方向与Y方向的一阶高斯偏导数Ix与Iy第二步:根据第一步结果得到Ix^2 , Iy^2与Ix*Iy值第三步:高斯模糊第二步三个值得到Sxx, Syy, Sxy第四部:定义每个像素的Harris矩阵,计算出矩阵的两个特原创 2016-10-02 20:38:58 · 397 阅读 · 0 评论 -
Android 使用OpenCV的三种方式(Android Studio)
原文链接:http://blog.csdn.net/sbsujjbcy/article/details/49520791其实最早接触OpenCV是很久很久之前的事了,大概在2013年的5,6月份,当时还是个菜逼(虽然现在也是个菜逼),在那一段时间,学了一段时间的Android(并不算学,一个月都不到),之后再也没接触android,而是一直在接触Java Web。那次接触OpenCV是转载 2016-07-11 13:58:28 · 1283 阅读 · 0 评论 -
随机映射变换
#include#includeusing namespace cv;using namespace std;Mat dealImg(Mat &img);int findMax(Mat &img);int main() { Mat img = imread("D://图片//882.jpg"); if (img.empty()) { return -1; } Mat r原创 2016-07-10 16:56:57 · 1813 阅读 · 0 评论 -
径向模糊与旋转模糊
#include#includeusing namespace cv;using namespace std;int main(){ Mat img = imread("D://图片//5.jpg"); if (!img.data) return -1; Mat result = img.clone(); result.convertTo(result, CV_32F);翻译 2016-06-10 22:09:58 · 1718 阅读 · 0 评论 -
图片单色渐变效果叠加
#include#includeusing namespace cv;using namespace std;int main() { Mat img1 = imread("D://图片//1.png"); if (!img1.data) return -1; img1.convertTo(img1, CV_32F); Mat result = img1.clone(); P翻译 2016-06-11 00:04:12 · 398 阅读 · 0 评论 -
傅里叶变换
/*傅里叶变换*/#include#include#include#include#includeusing namespace cv;using namespace std;int main() { Mat img = imread("D://图片//5.jpg"); if (img.empty()) return -1; cvtColor(img, img, CV_B翻译 2016-06-04 17:16:22 · 420 阅读 · 0 评论 -
分水岭算法
分水岭变换用于快速将图像分割成多个同质区域,把一个图像看作拓扑地貌,横纵坐标表示维度,灰度表示高度,从而有高山盆地。算法过程就像注水一样,水位上升,但是不会横向流动。每产生一个新的积水盆地时标记这个盆地使之与原有盆地区别开,当两个盆地内的水要汇集的时候,在此点建立一个水坝,将水分开,此水坝无限高,水永远不会溢出,依次建立所有水坝,最后的水坝就是所谓的分水岭或分水线,也就是得到的分割线。淹没过程也是翻译 2016-05-22 23:39:20 · 816 阅读 · 0 评论 -
傅里叶变换
一直都搞不懂傅里叶,看到这个文章豁然开朗,写的很好,分享一下原文链接:http://blog.jobbole.com/70549/傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝。老实说,这么有意思的东西居然成了大学里的杀手课程,不得不归咎于编教材的人实在是太严肃转载 2016-05-22 22:46:44 · 285 阅读 · 0 评论 -
图像边缘处理
有时候图像需要增强边缘来达到一定的效果,利用拉普拉斯对孤立像素的响应要比对边缘或线的响应更强烈,因此使用该算子进行图像锐化之前需要对图像作平滑处理。分析:当图像像素的灰度值发生剧 烈变化的时候,梯度算子是个很有效的方法,但是当灰度值变化很缓慢的时候,梯度的效果并不是很好,红色曲线表示像素灰度值的变化,绿色曲线是用梯度处理后的结果,蓝色曲线是拉普拉斯算子处理后的结果。考虑用拉普拉斯算子是非常原创 2016-05-22 18:03:28 · 918 阅读 · 0 评论 -
老照片
#include#include#includeusing namespace cv;using namespace std;int main() { Mat img = imread("D://图片//5.jpg"); if (!img.data) return -1; img.convertTo(img, CV_32F); Mat result = img.clone()原创 2016-06-08 23:54:20 · 201 阅读 · 0 评论 -
浮雕效果
using namespace cv;using namespace std;int main() { Mat img = imread("D://图片//5.jpg"); if (!img.data) { cout << "empty" << endl; } int num = 3; img.convertTo(img, CV_32F); Mat f = ( Mat_(3,3原创 2016-06-08 19:18:23 · 341 阅读 · 0 评论 -
图像的基本函数运算
原文链接:http://blog.csdn.net/liukun321/article/details/414762631.图像基本运算分类及理论依据图像的像素级运算1)点运算(灰度变换)——线性点运算、非线性点运算、映射表点运算点运算特点 点运算针对图像中的每一个像素灰度,独立地进行灰度值的改变 输出图像中每个像素点的灰度值,仅取决于相应输入像素点的值转载 2016-07-11 22:08:43 · 1061 阅读 · 0 评论 -
模糊算法增强图片对比度
昨天看到一个模糊算法介绍,感觉挺有趣的正好用到就实验了一下很多概念都是模糊的,如果把像素的概念模糊化,有时候可以这种模糊解决很多实际问题,比如增强图片对比度让黑的更黑亮的更亮灰的微处理但是这个局限性有点大,适合处理对比度不大的图片#include#includeusing namespace cv;using namespace std;Mat img;float* fi原创 2016-07-12 09:27:52 · 860 阅读 · 0 评论 -
利用createTrackbar调节图像信息增强暗部,灰度渐变,通道调节
#include#include#includeusing namespace cv;using namespace std;Mat img, result;vector channels_org;int maxValue = 255;int maxBinaryValue = 255;int grayValue = 0;int bValue = 0, gValue = 0,原创 2016-07-12 09:44:20 · 551 阅读 · 0 评论 -
角点绘制
角点,通俗的说就是交汇点,我们可以用日常生活的的角落来理解,这里先用最简单的膨胀腐蚀操作来获取角点。检测原理,先用十字形的结构元素膨胀像素,这种情况下只会在边缘处“扩张”,角点不发生变化。接着用菱形的结构元素腐蚀原图像,导致只有在拐角处才会“收缩”,而直线边缘都未发生变化。第二步是用X形膨胀原图像,角点膨胀的比边要多。这样第二次用方块腐蚀时,角点恢复原状,而边要腐蚀的更多。(这两个结构原创 2016-10-02 16:39:07 · 412 阅读 · 0 评论 -
opencv3 SVM
#include#include#includeusing namespace cv;using namespace cv::ml;void main() { Mat img = Mat::zeros(Size(600, 600), CV_8UC3); int lables[8] = { 1, -1, 1, 1, -1, 1, -1, 1 }; //注意数据类型 Mat la原创 2016-09-27 22:04:36 · 1326 阅读 · 1 评论 -
轮廓检测
原文链接:http://www.cnblogs.com/dengxiaojun/p/5252294.html前面在图像转换的时候学到canny算子,可以检测出图像的轮廓信息,但是,该算子检测到的轮廓信息还需要我们手动的用眼睛去识别,而实际工程应用中,我们需要得到轮廓的具体数学信息,这就涉及到今天的主题,图像轮廓检测. 一.图像轮廓检测 在op转载 2016-09-16 19:46:13 · 1377 阅读 · 0 评论 -
贝叶斯抠图
原文地址:http://blog.csdn.net/hjimce/article/details/47667947作者:hjimce一、相关理论 可能很多人会把图像分割和抠图混在一起。我的观点是图像分割和图像抠图的算法是完全不同的,图像抠图算法比较复杂,需要涉及到α值得求取问题,当然抠出来的精度也远远高于图像分割算法,当然速度不是一般的慢,所以基本上工程应用很难,商转载 2016-08-02 20:19:43 · 1640 阅读 · 0 评论 -
均值局部磨皮
#includeusing namespace cv;using namespace std;Mat dealPix(Mat &img);void dealImg(Mat &img);int main() { Mat img = imread("E://图片//实验.jpg"); if (img.empty()) { return -1; } imshow("org", i原创 2016-08-02 15:28:07 · 584 阅读 · 0 评论 -
照片美化
#includeusing namespace cv;using namespace std;Mat meibai(Mat &img);Mat wImg(Mat &img1, Mat &img2);void lbImg(Mat &img1, Mat &img2, Mat &result, int rad, int e);void dealImg(Mat &img);int main原创 2016-08-02 11:24:03 · 821 阅读 · 0 评论 -
基于FPGA的Alpha半透明图像叠加算法实现
#include#includeusing namespace cv;using namespace std;Mat dealImg(Mat &img);int main() { Mat img = imread("E://ͼƬ//1.png"); if (img.empty()) { return -1; } Mat result; result = dealImg(原创 2016-07-22 09:22:50 · 10155 阅读 · 0 评论 -
毛玻璃
原文链接:http://blog.csdn.net/matrix_space/article/details/40263725function [ output_args ] = Untitled( ) img = imread('D:/图片/5.jpg');img = double(img);size_info = size(img);height = size_info(1);转载 2016-05-29 23:49:41 · 234 阅读 · 0 评论 -
个性水彩人像效果
原图:效果:#include#includeusing namespace cv;using namespace std;Mat dealGray(Mat &img);void dealShuiCai(Mat &img);int main() { Mat img = imread("E://图片//880.jpg"); if (img.empty()) {原创 2016-07-24 21:55:33 · 590 阅读 · 0 评论 -
图像去噪
/*加噪,去噪*/#include#includeusing namespace cv;using namespace std;int main() { double t0 = (double)getTickCount(); Mat img_org = imread("D://图片//5.jpg"); if (img_org.empty()) { cout << "图片翻译 2016-04-25 05:00:03 · 530 阅读 · 0 评论 -
图像几何变换各项操作
/*图像的几何变换*/#include#include#include#includeusing namespace cv;using namespace std;int main() { Mat img_org = imread("D://图片//5.jpg"); if (img_org.empty()) { cout << "加载失败!" << endl; re翻译 2016-04-25 04:28:09 · 482 阅读 · 0 评论 -
图像平滑,锐化,图像金字塔,查找表,形态学运算
/*图像平滑,锐化图像金字塔形态学运算查找表*/#include#includeusing namespace cv;using namespace std;int main() { Mat img_org = imread("D://图片//4.jpg"); if (img_org.empty()) { cout << "图片加载失败!" << endl; r翻译 2016-04-25 03:19:08 · 746 阅读 · 0 评论 -
opencv读取图片,视频文件,摄像头
#include"highgui.h"#include#includeusing namespace cv;int main(int argc,char *argv[]) {/*IplImage *src = cvLoadImage("D:\\图片作品\\633.jpg",-1); // 0 是单通道,灰度显示,1是彩色图像,三通道cvNamedWindow("show原创 2016-04-08 10:10:13 · 547 阅读 · 0 评论 -
win10+opencv3.1+vs 2015环境配置
首先应该下载opencv 网址:http://opencv.org/downloads.html下载好后直接点击安装在想要安装的地方,我是安装在E盘的。显示成功后继续下面的步骤。打开计算机的属性面板,高级系统设置,环境变量,在系统变量中找到Path,如果没有就新建一个。在原有的Path后加上“;E:/opencv/build/x64/vc12/bin”注意要有分号,来分隔各变量,最后不原创 2016-04-06 21:43:30 · 981 阅读 · 0 评论 -
矩阵和图像的操作函数
cvAbs 计算数组中的所有元素的绝对值cvAbsDiff 计算两个数组差值的绝对值cvAbsDiffS 计算数组和标量差值的绝对值cvAdd 两个数组的元素级的加运算cvAddS 一个数组和一个标量的元翻译 2016-04-18 20:15:36 · 285 阅读 · 0 评论 -
图片平滑处理
#include#includeusing namespace cv;void dealImage(IplImage *img) {cvNamedWindow("image_in");cvNamedWindow("image_out");cvShowImage("image_in", img);IplImage * out_img = cvCreateImage(cvG翻译 2016-04-17 21:19:30 · 386 阅读 · 0 评论 -
图片缩小输出及边缘检测
#include#include#include#includeusing namespace cv;IplImage *doPryImage(IplImage * in, int filter = CV_GAUSSIAN_5x5) {assert(in->width % 2 == 0 && in->height % 2 == 0);IplImage * out = c翻译 2016-04-17 21:24:03 · 431 阅读 · 0 评论 -
彩色视频转换为灰度视频输出
#include#include#includeusing namespace cv;using namespace std;int main() {CvCapture * avi = cvCreateFileCapture("D:\\视频\\1.avi");if (!avi)return 0;IplImage *img = cvQueryFra翻译 2016-04-17 22:25:16 · 1680 阅读 · 0 评论 -
读取视频同时创建进度条
#include#include#include"highgui.h"using namespace cv;int slider_position = 0;CvCapture * avi = NULL;void onTrackBarSlider(int pos) {cvSetCaptureProperty(avi, CV_CAP_PROP_POS_FRAMES, pos翻译 2016-04-17 21:17:33 · 292 阅读 · 0 评论 -
Threshold 对单通道数组应用的固定阈值操作
1.CV_EXPORTS_W double threshold( InputArray src, OutputArray dst, double thresh, double maxval, int type )//src: 原始数组(单通道,8-bit, 32-bit 浮点数)//dst: 输出数组(与输入数组保持一致)//thresh: 阈值(门槛值)//ma原创 2016-04-30 13:41:20 · 810 阅读 · 0 评论 -
数组变换图片
这次先上效果图:/*图像感兴趣区域设置处理*/#include#includeusing namespace cv;using namespace std;int main() { double t = (double)getTickCount(); Mat img = imread("D://图片//1.jpeg"); Mat log = imread("D:/翻译 2016-04-27 23:08:27 · 293 阅读 · 0 评论 -
访问像素级改变图片效果
/*像素扫描改变图像*/#include#includeusing namespace cv;using namespace std;int main() { double t = (double)getTickCount(); Mat img = imread("D://图片//5.jpg"); int div = 64; if (img.empty()) { co原创 2016-04-27 16:25:37 · 277 阅读 · 0 评论 -
延展增加对比度
/*延伸直方图均衡增加图像的对比度*/#include#includeusing namespace cv;using namespace std;Mat stretch(const Mat& img, int minValue);Mat stretchV3(const Mat & img, int minValue);int main() { double t = ge原创 2016-05-02 23:35:50 · 199 阅读 · 0 评论 -
水波效果
#include#includeusing namespace cv;using namespace std;#define PI 3.1415926Mat waterDeal(const Mat &img);int main() { Mat img = imread("D://图片//1.png"); if (img.empty()) return -1; Mat resul翻译 2016-05-26 12:51:09 · 340 阅读 · 0 评论 -
直方图图像检测
函数 cvCalcBackProject 计算直方图的反向投影, 对于所有输入的单通道图像同一位置的象素数组。该函数根据相应的象素数组,放置对应的直方块的值到输出图像中。觉得文档写的很详细,虽然我没怎么懂,还是粘贴过来慢慢看:calcBackProjectCalculates the back projection of a histogram.C++: void ca原创 2016-05-04 01:43:04 · 975 阅读 · 0 评论 -
绘制直方图以及均衡化处理
/*直方图均衡化*/#include#includeusing namespace cv;using namespace std;void histogramcalculation(const Mat &img, Mat &histoImage); //得到直方图int main() { Mat img_org, img_tem; Mat histImage,hist翻译 2016-04-24 22:20:14 · 379 阅读 · 0 评论