OpenCV笔记(十四)
来源:互联网 发布:网络创业类型 编辑:程序博客网 时间:2024/05/16 09:42
图像修补
#include<opencv2/opencv.hpp>#include<opencv2/highgui/highgui.hpp>#include<iostream>using namespace cv;using namespace std;Mat srcImage1,inpaintMask;Point previousPoint(-1,-1);void on_mouse(int event,int x,int y,int flags,void*){if(event==EVENT_LBUTTONUP||!(flags&EVENT_FLAG_LBUTTON))previousPoint=Point(-1,-1);else if(event==EVENT_LBUTTONDOWN)previousPoint=Point(x,y);else if(event==EVENT_MOUSEMOVE&&(flags&EVENT_FLAG_LBUTTON)){Point pt(x,y);cout<<pt<<endl;if(previousPoint.x<0)previousPoint=pt;line(inpaintMask,previousPoint,pt,Scalar::all(255),15,7,0);line(srcImage1,previousPoint,pt,Scalar::all(255),15,7,0);previousPoint=pt;imshow("1",srcImage1);}}int main(){Mat srcImage=imread("redflo.bmp");srcImage1=srcImage.clone();inpaintMask=Mat::zeros(srcImage1.size(),CV_8U);imshow("1",srcImage);setMouseCallback("1",on_mouse,0);while(1){char c=waitKey();if(c==27) break;if(c=='2'){inpaintMask=Scalar::all(0);srcImage.copyTo(srcImage1);imshow("1",srcImage1);}if(c=='1'||c==' '){Mat inpaintedImage;inpaint(srcImage1,inpaintMask,inpaintedImage,3,CV_INPAINT_NS);//需修补的原图,需修补掩模,修复输出图,修补点半径imshow("2",inpaintedImage);}}return 0;}
直方图:
#include<opencv2/opencv.hpp>#include<opencv2/highgui/highgui.hpp>#include<iostream>using namespace cv;using namespace std;int main(){Mat srcImage=imread("building.jpg",0);imshow("src",srcImage);MatND dstHist;int dims=1;float hranges[]={0,255};const float *range[]={hranges};int size=256;int channels=0;calcHist(&srcImage,1,&channels,Mat(),dstHist,dims,&size,range);//输入图像的指针,图像张数,通道索引,掩模,直方图,直方图维度,存放直方图的数组尺寸,每一维数值的取值范围//int scale=1;Mat dstImage(size,size,CV_8U,Scalar(0));double minValue=0;double maxValue=0;minMaxLoc(dstHist,&minValue,&maxValue,0,0);int hpt=saturate_cast<int>(0.9*size);for(int i=0;i<256;i++){float binValue=dstHist.at<float>(i);//cout<<binValue<<" ";int realValue=saturate_cast<int>(binValue*hpt/maxValue);rectangle(dstImage,Point(i,size-1),Point(i,size-realValue),Scalar(255));}imshow("hist",dstImage);waitKey(0);}
0 0
- OpenCV笔记(十四)
- opencv学习笔记(十四)图像金字塔
- 【OpenCV学习笔记】十四、图像几何变换
- opencv 2.x学习笔记(十四)离散傅里叶变换
- zynq-7000学习笔记(十四)——移植openCV
- OpenCV学习笔记(十四)圆检测技术
- opencv学习笔记(二十四)霍夫线变换
- 学习【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑---笔记
- opencv(十四)--模板匹配
- OpenCV学习笔记(十四)——图像结构分析与形状描述ImgProc
- OpenCV学习笔记(二十四)——初探机器学习库ml
- 【OpenCV学习笔记】【函数学习】十四(cvSeq的用法说明(功能很多,按照需求使用))
- OpenCV2学习笔记(十四):基于OpenCV的图片卡通化处理
- opencv学习笔记(十四)——图像像素的访问
- opencv学习笔记(二十四)——相机标定板制作
- OpenCV学习笔记(十一)(十二)(十三)(十四)(十五)
- 【OpenCV学习笔记】二十四、轮廓查找与绘制(一)
- opencv开发笔记(十四):创建包围轮廓的矩形边界
- 解析XML数据
- 为革命保护视力 — 给 Visual Studio 换颜色
- 递归与尾递归 (C语言)
- HTTP协议入门——1.1版本
- C语言指针-----指针与变量
- OpenCV笔记(十四)
- 第二章:CallsManager调用 startOutgoingCall开始拨号流程之四InCallController.java绑定InCallService.java实现进程间Binder通信
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- 蓝桥杯 基础训练 完美的代价(转)
- Caffe学习系列(7):solver及其配置
- Swift语言基础篇
- Caffe学习系列(8):solver优化方法
- Mysql学习总结(2)——Mysql超详细Window安装教程
- 连接池与数据库