VS c++ opencv画图
任务:用c++在图片上画线
之前用过python的opencv,所以直接想到了用c++的opencv来画线。
但关键就是VS中如何配置c++ opencv库的问题:
vs中opencv库的配置:https://www.cnblogs.com/linshuhe/p/5764394.html
1、创建工程:
可以创建控制台工程也可以创建空工程。
2、打开解决方案资源管理器和属性管理器
打开解决方案资源管理器:视图>>解决方案资源管理器
打开属性管理器:视图>>其他窗口>>属性管理器
3、创建c++文件
解决方案资源管理器中 source目录右键>>添加>>新建项
4、配置平台为x64
我的机器是64位的,应该用x64,而VS默认是win32,所以需要先修改一下平台:
debug>>配置管理器
活动解决方案平台>>如果有x64就选择x64,如果没有则选择新建,新建一个x64
5、配置属性管理器
配置平台为x64之后,就可以看到属性管理器里面多了debug|x64和release|x64两个文件夹
调试的时候配置debug|x64文件夹就好
右键>>属性
需要配置的一般有以下几个地方:
(1)include目录:
(2)lib目录:
这里注意,如果VS为2013版本的话,则应该使用vc12目录里的lib;如果VS为2015版本的话,则应该使用vc14目录里的lib,总之lib的版本不能高于VS的版本,否则会出错
我的VS是2013的,一开始下载了opencv-3.3.0-vc14的安装包,导致安装完成后没有vc12文件夹,强行用vc14则vs2013各种报错。于是重装了opencv-3.1.0解决了问题。
(3) 链接器input,把所用到的库文件的文件名考进去(注意不是路径名),尽量多考
(4)编译器的运行库(动态还是静态)。例如我写opencv的时候就必须用MTD,默认MDD就会出错
VS运行时库 MT MTD MD MDD区别:
https://www.cnblogs.com/ShaneZhang/p/3480502.html
(5)有时例如如果用到freopen函数,VS会报错说freopen函数危险不能用,如果非要用,也可以在这里配置一下
项目 =》属性 =》c/c++ =》预处理器=》点击预处理器定义,编辑,加入_CRT_SECURE_NO_WARNINGS,即可。
freopen函数不安全错误:https://blog.csdn.net/zhangyuehuan/article/details/12012635
c++读取文件freopen:https://blog.csdn.net/jacky_chenjp/article/details/70237418
6、写程序:opencv画直线
#include <iostream>
#include <stdio.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std; int main(){
// 读入图片
Mat img = imread("pic.png"); //配置点数 默认4个
const int pointnum = 4; double a[pointnum];
double b[pointnum];
double max = 0;
int maxindex = 0; //颜色集合
int scalar_cur = 0;
Scalar color[3] = {Scalar(255,0,0),Scalar(0,255,0),Scalar(0,0,255)}; //打开文件
freopen("E:\\programs\\c++\\Drawpic\\Drawpic\\pos", "r", stdin);
//while (scanf("[%lf, %lf]\n", &a[i], &b[i]) != EOF){ //读入文件,并找到位置最低的点
for (int i = 0; i<pointnum;i++){
scanf("[%lf, %lf]\n", &a[i], &b[i]);
if (b[i] > max){
max = b[i];
maxindex = i;
}
} //画线
for (int i = 0; i < pointnum; i++){
if (i == maxindex){
continue;
}
line(img, Point(a[maxindex], b[maxindex]), Point(a[i], b[i]), color[scalar_cur],3);
//三种颜色循环使用
scalar_cur = (scalar_cur + 1) % 3;
} imshow("face",img); // 等待60000 ms后窗口自动关闭
waitKey(60000);
}
opencv绘制直线:https://blog.csdn.net/weixin_36340947/article/details/77095924
VS c++ opencv画图的更多相关文章
- OpenCV画图(画OpenCV的标志)
import numpy as np import cv2 img = np.ones((512, 512, 3), np.uint8)*255 # 画椭圆 # 图片 (圆心) (短轴长,长轴长),旋 ...
- Opencv画图操作
1. 画矩形 MyRect rect;rect.left = 5;rect.top = 5;rect.right = 100;rect.bottom = 100;IplImage * pColorIm ...
- python opencv画图可视化
画直线 import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) # Dra ...
- opencv画图
#coding=utf-8 import cv2 import numpy as np img = cv2.imread("2.png",cv2.IMREAD_COLOR) cv2 ...
- 使用opencv-python画OpenCV LOGO
OpenCV2-Python 官方教程的练习 代码: #-*- coding:utf-8 -*- import numpy as np import cv2 img = np.zeros((512, ...
- 人脸识别68个点<转>
[Opencv] 于仕琪 人脸68个特征点分布情况 // 鼻尖 30 // 鼻根 27 // 下巴 8 // 左眼外角 36 // 左眼内角 39 // 右眼外角 45 // 右眼内角 42 // 嘴 ...
- OpenCV-Python Tutorials目录
版本 3.4.6 1 Introduction to OpenCV OpenCV介绍Learn how to setup OpenCV-Python on your computer! 2 Gui F ...
- OpenCV基础篇之画图及RNG随机数对象
程序及分析 /* * FileName : random_gen.c * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 29 ...
- 关于OpenCV的Mat画图问题
由于OpenCV的java版本画图有太多错误,只能自己编写画图的代码,在一个函数中,编写出画圆和深度距离的代码, 代码如下: public int CircleMyMat(Mat Show, Poin ...
随机推荐
- redis命令_SETEX
SETEX key seconds value 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位). 如果 key 已经存在, SETEX 命令将覆写旧值 ...
- makefile之强制目标
强制目标 1. 定义 如果一个规则(rule_A)既没有依赖也没有命令,仅有目标(Targe_A),并且目标名不冲突.那么,在执行这个规则的时候,目标总被认为是更新过的.如果这个目标(Target_A ...
- Linux命令之rename
一.引言 今天才知道Linux下的rename有两个版本,util-linux工具集的rename和Perl版本的rename,而两者的用法是明显不一样的,Perl版rename相对比较强大 二.对比 ...
- The Definitive Guide To Django 2 学习笔记(八) 第四章 模板 (四)基本的模板标签和过滤器
标签 下面的部分概述了常见的Django标签. if/else {%if%} 标签 对一个变量值进行测试,如果结果为true,系统将会显示在{%if%} 和 {%endif%}之间的一切,看个例子: ...
- hdu1695 GCD 莫比乌斯反演做法+枚举除法的取值 (5,7),(7,5)看做同一对
/** 题目:hdu1695 GCD 链接:http://acm.hdu.edu.cn/status.php 题意:对于给出的 n 个询问,每次求有多少个数对 (x,y) , 满足 a ≤ x ≤ b ...
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败解决方案
第一种方法测试过可用:地址:http://download.csdn.net/detail/itjjfamily/8853509 下面是第二种: .NET导出Excel遇到的80070005错误的解决 ...
- 2018 ACM-ICPC 北京赛区小结 @ Reconquista
Statistics TYPE: Onsite Contest NAME: 2018 - ICPC Regional - Asia EC - Beijing PLAT: Hihocoder TIME: ...
- XV Open Cup named after E.V. Pankratiev Stage 6, Grand Prix of Japan Problem J. Hyperrectangle
题目大意: 给出一个$d$维矩形,第i维的范围是$[0, l_i]$. 求满足$x_1 + x_2 + ...x_d \leq s$ 的点构成的单纯形体积. $d, l_i \leq 300$ 题解: ...
- 你很熟悉CSS,却没掌握这些CSS技巧
转载来自 http://www.html5cn.org/article-9294-1.html 做前端开发的人都很熟悉CSS,一个漂亮的网页由HTML标签和控制这些标签布局的CSS组成,因此CSS在开 ...
- linq依据传入数据集合查询相应子级数据
工作中经经常使用到的linq依据传入数据集合查询相应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点相应ID数据集合,再依据ID数据集合查询所有子级数据. //获取缓存 ...