
opencv
ancy_i_cv
start...
展开
-
opencv之解决undefined reference to `png_get_eXIf_1‘
导致出现undefined reference to `png_get_eXIf_1'的原因是使用了系统的png库造成的,在编译过程中将Build_PNG设为ON就可以了原创 2022-06-16 18:04:19 · 1246 阅读 · 2 评论 -
opencv之CmakeLists.txt配置
cmake_minimum_required(VERSION 3.6.3)project(learb_opencv)set(CMAKE_CXX_STANDARD 11)# OpenCVModules-release.cmake 路径set(OpenCV_DIR "/home/ancy/opencv_bin/lib/cmake/opencv4/")find_package(OpenCV REQUIRED)include_directories( ${OpenCV_INCLUDE_DIRS} .原创 2022-04-02 17:50:33 · 3925 阅读 · 0 评论 -
opencv之解决Module opencv_ovis disabled because OGRE3D was not found
这里需要安装ogre3d,但是在安装它之前,需要先安装ois1)从git上下载https://github.com/ogre3d/OIS.git2)cmake一下,然后进入build 完成sudo make install3)git上下载https://github.com/OGRECave/ogre.git4)cmake一下进入build,输入以下命令 sudo make install5) sudo apt-get install libogre-1.9-dev #...原创 2022-03-12 14:20:54 · 8561 阅读 · 0 评论 -
opencv之Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when available.
在cmakelist文件中加入下面内容if (POLICY CMP0072) set(OpenGL_GL_PREFERENCE LEGACY)endif()原创 2021-12-17 14:32:50 · 3724 阅读 · 0 评论 -
opencv之使用TickMeter计时
TickMeter tm; for (int i = 0; i < COUNT; i++) { tm.start(); // do something ... tm.stop(); } cout << "Average time per iteration in seconds: " << tm.getAvgTimeSec()...原创 2021-09-08 15:50:42 · 1179 阅读 · 0 评论 -
opencv之解决无法从“cv::Mat”转换为“IplImage”
IplImage z_ipl = cvIplImage(_roi_patch);原创 2021-08-26 11:19:47 · 1023 阅读 · 1 评论 -
opencv之waitKey()与waitKeyEx()的区别
waitKey只支持返回部分的键码,而waitKeyEx支持全部的键码。例程:1) 当使用waitKey时import cv2while True: key = cv2.waitKey(0) print('key = ', key)依次按上、下、左、右方向键,输出:key = 0key = 0key = 0key = 02) 当使用waitKeyEx时import cv2while True: key = cv2.waitKeyE.原创 2021-08-14 17:32:05 · 1160 阅读 · 0 评论 -
openv之实现点绕旋转中心旋转
c++版本#include <opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;Point center(450, 450);Mat pt = (Mat_<double>(3, 1) << 300, 300, 1);int main(){ Mat image = Mat::zeros(1280, 1280, CV_8UC3); fo原创 2021-06-18 10:46:18 · 498 阅读 · 0 评论 -
opencv之划痕缺陷检测
检测思路① 原图均值滤波② 滤波图像与原图进行差分③ 二值化④ 查找轮廓(根据轮廓长度进行筛选)代码原创 2021-06-15 14:12:20 · 8322 阅读 · 0 评论 -
opencv之求轮廓的凸包
import cv2import numpy as npimage = cv2.imread("C:\\Users\\PC\\Desktop\\22.bmp")img = image.copy()gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 二值化ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)# 图片轮廓contours, hierarchy = cv2.findC.原创 2021-05-27 16:39:11 · 466 阅读 · 0 评论 -
opencv之使用floodfill填充孔洞
import cv2import numpy as npdef fillHole(src_image): src_image_temp = src_image.copy() # 创建mask, 必须长宽大于原图的2个像素 h, w = src_image.shape[:2] mask = np.zeros((h + 2, w + 2), np.uint8) # 使用漫水填充, 种子点为(0, 0) cv2.floodFill(src_image_te.原创 2021-05-27 16:02:04 · 2546 阅读 · 0 评论 -
opencv之规范化图像的取值范围
https://docs.opencv.org/master/d2/de8/group__core__array.html#ga87eef7ee3970f86906d69a92cbf064bdpythonimage = cv2.normalize(image, None, 0, 255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8UC3)c++cv::normalize(filledSrcImage, filledSrcImage, 0, 255原创 2021-05-27 14:03:40 · 680 阅读 · 0 评论 -
opencv之cv::Mat像素遍历
本文介绍的cv::像素遍历方法如下:使用at成员函数 使用ptr指针访问 使用迭代器iterator1. 使用at(i, j)这种方式在Debug模式下的访问速度是最慢的,但是在Release模式下的访问速度也是相当快的,和其他方式相近。单通道遍历(灰度图像)cv::Mat image(100 , 100 , CV_8UC1); int rows = image.rows;int cols = image.cols;for (int i=0; i<rows ; i++)原创 2021-05-19 11:24:29 · 2723 阅读 · 0 评论 -
opencv之图像边界填充-- copyMakeBorder
函数原型dst=cv.copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]]) src-源图像 top,bottom,left,right-上下左右四个方向上的边界拓宽的值 borderType-定义要添加的边框类型的标志。它可以是以下类型: cv.BORDER_CONSTANT- 添加一个恒定的彩色边框。该值应作为下一个参数value给出。 cv.BORDER_REFLECT原创 2021-04-01 11:31:55 · 1485 阅读 · 0 评论 -
opencv之绘制多边形----cv2.polylines, cv2.fillPoly
代码展示# -*- coding:utf-8 -*-import cv2import numpy as npimg = np.zeros((200, 200, 3), dtype=np.uint8)pts = np.array([[10, 10], [100, 10], [100, 100], [10, 100]], np.int32) # 数据类型必须为 int32pts = pts.reshape((-1, 1, 2))# 绘制未填充的多边形# cv2.polylines(img原创 2021-03-09 13:29:35 · 16468 阅读 · 1 评论 -
opencv之对图像中的点做几何变换
代码展示# -*- coding:utf-8 -*-import cv2import numpy as npdef homo(mat): if 2 == mat.ndim: return np.vstack((mat, np.ones((1, mat.shape[1])))).copy() else: return np.hstack([mat, [1]]).copy()def un_homo(mat): temp = mat.c原创 2021-03-09 11:30:23 · 398 阅读 · 0 评论 -
opencv之绘制调色板
代码实现# -*- coding:utf-8 -*-import cv2import numpy as npr_range = 255image_wh = 530center_xy = image_wh // 2image = np.zeros((image_wh, image_wh, 3), dtype=np.uint8)for x in range(image_wh): for y in range(image_wh): # xy是否在圆内原创 2021-03-04 13:54:12 · 622 阅读 · 1 评论 -
opencv之使用open3d可视化opencv加载的点云数据
代码展示import cv2 as cvimport open3d as o3dmodelname = "parasaurolophus_6700"detector = cv.ppf_match_3d_PPF3DDetector(0.025, 0.05)print('Loading model...')pc = cv.ppf_match_3d.loadPLYSimple("data/%s.ply" % modelname, 1)pt = o3d.geometry.PointCloud原创 2021-03-01 10:38:42 · 2563 阅读 · 2 评论 -
opencv之retina滤波器---Retina_create
代码展示# -*- coding:utf-8 -*-import cv2image = cv2.imread('/home/pi/PycharmProjects/learn/opencv/samples/data/stuff.jpg')h, w = image.shape[:2]my_retina = cv2.bioinspired.Retina_create((w, h), colorMode=True原创 2021-02-26 15:27:57 · 405 阅读 · 0 评论 -
opencv之在图像上绘制标记---drawMarker
核心函数drawMarker(img, position, color, markerType=None, markerSize=None, thickness=None, line_type=None)img 需要绘制标记的图像 position 绘制的位置 color 段的颜色 markerType 要使用的标记的特定类型 thickness 线段的线宽 line_type 绘制线的类型 markerSize 标记轴的..原创 2021-02-24 16:37:17 · 2440 阅读 · 0 评论 -
opencv之绘制带箭头的线段---arrowedLine
核心函数arrowedLine(img, pt1, pt2, color, thickness=None, line_type=None, shift=None, tipLength=None) img: 需要绘制箭头的图像 pt1, pt2:绘制箭头线段的起点和终点坐标 color: 绘制箭头线段的颜色 thickness: 箭头线段的线宽(线的粗细) line_type: 绘制线的类型参考定义Li...原创 2021-02-24 10:39:41 · 3407 阅读 · 0 评论 -
Opencv之微信二维码检测与解析
简介微信二维码检测器是由微信计算机视觉团队(WeChatCV)提供的一个高性能、轻量级的二维码检测与解码库。它已广泛应用于腾讯的各种应用,包括微信、微信、QQ、QQ浏览器等。微信二维码检测仪有四个主要特点:基于CNN的QR码检测器。与传统的检测器不同,本文提出了一种用于多码检测的微小CNN模型。该检测器基于SSD架构,采用MobileNetV2类主干结构,运行在caffe推理框架上。 基于CNN的QR码增强。为了提高微小二维码的性能,我们设计了一种超分辨率CNN二维码模型QRSR。深度卷积、Den原创 2021-02-03 08:45:34 · 6044 阅读 · 11 评论 -
Opencv之通过url抓取图片并通过opencv可视化
代码展示import cv2import numpy as npimport urllib.requestdef fetchImageFromHttp(image_url, timeout_s=1): try: if image_url: resp = urllib.request.urlopen(image_url, timeout=timeout_s) image = np.asarray(bytearray(res原创 2021-01-19 09:54:00 · 1802 阅读 · 1 评论 -
Opencv之生成棋盘标定板
代码展示# -*- coding:utf-8 -*-import cv2import numpy as npclass Chessboard: def __init__(self): # 背景颜色 self.background_color = [255, 255, 255] # 棋盘颜色 self.foreground_color = [0, 0, 0] # 每个棋盘格占像素个数 sel原创 2021-01-17 19:47:25 · 1218 阅读 · 4 评论 -
Opencv之以亚像素精度获取图片的ROI--cv.getRectSubPix
函数作用从图像中以亚像素精度检索ROI区域函数原型getRectSubPix(image, patchSize, center, patch=None, patchType=None)image:输入图像 patchSize:获取感兴趣区域矩形的大小 center:感兴趣区域矩形在原图像中的位置(即感兴趣区域矩形的中心点坐标) patch:输出的图像 patchType=-1 :表示输出图像的深度。默认-1 ,深度不变代码展示# -*- coding:utf-8.原创 2021-01-15 16:26:34 · 1121 阅读 · 0 评论 -
Opencv之以图像直方图可视化
图像直方图是一种对图像空间域内色彩灰阶的分布情况的图形表示,以便更好地理解颜色分布.核心函数hist=cv.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])imaes:输入的图像 channels:用于计算图像直方图的通道列表。 mask:掩膜,是一个大小和image一样的np数组,其中把需要处理的部分指定为1,不需要处理的部分指定为0,一般设置为None,表示处理整幅图像 histS..原创 2021-01-15 15:12:41 · 600 阅读 · 1 评论 -
Opencv之python使用zxing识别二维码
方式1:安装方式: pip install zxingimport zxingreader = zxing.BarCodeReader()barcode = reader.decode("/home/pi/Desktop/azteccode.jpg")print(barcode.parsed)方式2:安装方式: pip install pyzxingfrom pyzxing import BarCodeReaderreader = BarCodeReader()resu.原创 2021-01-12 15:10:54 · 2299 阅读 · 4 评论 -
Opencv之使用pylibdmtx解析DataMatrix码
pylibdmtx专门用于解析 DataMatrix Code 的一个库, 对其他码形的解析无能为力.安装步骤sudo apt-get install libdmtx0apip install pylibdmtx代码展示# -*-coding:utf-8 -*-import timeimport cv2from pylibdmtx import pylibdmtx# 加载图片image = cv2.imread('/home/pi/Desktop/azteccode.jpg'原创 2021-01-12 08:42:34 · 6126 阅读 · 2 评论 -
Opencv之二维码识别---QRCodeDetector
OpenCV在对象检测模块中QRCodeDetector有两个相关API分别实现二维码检测与二维码解析:# 检测二维码bool cv::QRCodeDetector::detect( InputArray img, OutputArray points )constimg输入图像,灰度或者彩色图像points 得到的二维码四个点的坐标信息# 解析二维码std::string cv::QRCodeDetector::decode( InputArray img,原创 2021-01-06 14:22:42 · 13513 阅读 · 3 评论 -
Opencv之生成Halcon标定板
代码展示:# -*- coding:utf-8 -*-import cv2import numpy as npclass HalconBoard: def __init__(self, pattern_size_hw, resolution_mm): self._pattern_size_hw = pattern_size_hw self._resolution_mm = resolution_mm self._object_point原创 2020-12-22 14:49:19 · 526 阅读 · 0 评论 -
Opencv之斑点(Blob)检测--SimpleBlobDetector_create
斑点(Blob)的定义: 图像特征点检测包括角点和斑点,斑点是指二维图像中和周围颜色有颜色差异和灰度差异的区域,因为斑点代表的是一个区域,所以其相对于单纯的角点,具有更好的稳定性和更好的抗干扰能力.斑点通常是指与周围有着颜色和灰度差别的区域。在实际地图中,往往存在着大量这样的斑点,如一颗树是一个斑点,一块草地是一个斑点,一栋房子也可以是一个斑点。由于斑点代表的是一个区域,相比单纯的角点,它的稳定性要好,抗噪声能力要强,所以它在图像配准上扮演了很重要的角色。同时有时图像中的斑点也是我们关心的区域,比如在医学与原创 2020-12-11 14:35:58 · 16459 阅读 · 4 评论 -
Opencv之形状距离匹配--createShapeContextDistanceExtractor
代码展示:c++版:#include <iostream>#include <string>#include <opencv2/shape.hpp>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;static vector<Point> simpleContour( const Mat& currentQuery, int n=原创 2020-12-11 10:11:31 · 2206 阅读 · 1 评论 -
opencv之解决对加载图片大小限制的问题
以下示例中, opencv的版本为: 4.5.0为了opencv能够输入大于32000*32000的图片,做了一下修改:修改文件路径:opencv/modules/imgcodecs/src/loadsave.cpp修改前:static const size_t CV_IO_MAX_IMAGE_PARAMS = cv::utils::getConfigurationParameterSizeT("OPENCV_IO_MAX_IMAGE_PARAMS", 50);static con原创 2020-12-04 10:55:51 · 3239 阅读 · 1 评论 -
opencv编译之修改python绑定so名字
文章目录 编译静态库 将python binding 的cv2.so修改为其他名字 编译静态库 在编译opencv时,一般都是编译成为动态库,但是有时为了方便移植或者在其他地方安装,会需要将其编译成静态库的形式。这个时候只需要将cmake的 BUILD_SHARED_LIBS 参数设为 OFF即可 。可以采用如下命令来进行编译: cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..原创 2020-11-03 19:36:24 · 401 阅读 · 0 评论 -
opencv显示中文
以下代码测试于ubuntu18.04下,opencv3.4.0注意:opencv必须编译下的contrib中的freetype模块# -*- coding:utf-8 -*-import cv2import numpy as npimg = np.zeros((100, 300, 3), dtype=np.uint8)ft = cv2.freetype.createFreeType2()# sudo apt-get install ttf-wqy-zenhei #安装字体f.原创 2020-10-25 17:20:55 · 636 阅读 · 0 评论 -
OPENCV3.0 单目摄像头标定(使用官方自带的标定图片)
OPENCV3.0 单目摄像头标定(使用官方自带的标定图片)转载于:https://blog.youkuaiyun.com/zc850463390zc/article/details/48946855// opencv_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2/opencv.hpp>#incl...转载 2018-11-15 15:14:01 · 1054 阅读 · 0 评论 -
Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译
Anaconda Python3.6 OpenCV4.1.0Ubuntu 16.04源码编译转载于:https://blog.youkuaiyun.com/phdsky/article/details/78248192anaconda pip或者conda直接install opencv-python的opencv版本无法读取视频,装了ffmpeg也没用,估计是被阉割了,没办法只能下源码编译。重...转载 2019-06-14 13:41:22 · 1026 阅读 · 0 评论 -
pycharm OpenCV代码补全失效解决方法
转载于:https://blog.youkuaiyun.com/wjsiou123/article/details/88343328问题描述:最近在pycharm中打开以前的项目,发现cv2模块没有代码提示,但仍然能正常使用。解决方法:1.卸载当前的opencv,用conda重装或者用pycharm里面的Package管理功能重装。如果有用则大功告成,没用的话继续。2.按住ctrl,...转载 2019-07-30 13:19:22 · 1306 阅读 · 1 评论 -
经典手眼标定算法之Tsai-Lenz的OpenCV实现
本文主要是讲解经典手眼标定问题中的TSAI-LENZ 文献方法,参考文献为“A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/Eye Calibration”,并且实现了基于OpenCV的C++代码程序,code可去优快云资源下载,MATLAB版本作者为苏黎世理工的Christian Wen...转载 2019-08-08 08:40:20 · 1785 阅读 · 0 评论 -
opencv3.4.0在ubuntu16.04上的安装
这几天在学习pytorch,要用到opencv,所以重新安装了一下。首先下载opencv3.4.0,直接去官网下就好了,解压。首先要切换到root用户。# mkdir build# cd build#cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D...转载 2019-07-28 17:03:19 · 2696 阅读 · 0 评论