opencv
文章平均质量分 62
qxq_sunshine
持之以恒
展开
-
C++_opencv透视变换应用—抠图和换广告牌
透视变换作用:将图片映射到一个新的视平面,也称为投影映射。透视变换和仿射变换的区别:(1)、仿射变换,它可以将矩形转换成平行四边形,也可以将矩形的边压扁但必须保持边是平行的,也可以将矩形旋转或者按比例缩放。透视变换除了能够处理仿射变换的操作外,还可以将矩形转换成梯形。即仿射变换后还是平行四边形,透视变换后是四边形。因此可以说仿射变换是透视变换的一个子集。(2)、在OpenCV中,基于2*3矩阵进行的变换,是图像的仿射变换;基于3*3矩阵进行的变换,是图像的透视变换或者单应性映射。图像透视变换多用原创 2021-04-25 11:48:23 · 1235 阅读 · 1 评论 -
C++ opencv 仿射变换详解
1、C++仿射变换中主要涉及到2个函数:getAffineTransform() 和warpAffine()2、粗略的理解:getAffineTransform()是用来求得仿射变换矩阵的;而warpAffine()是用来对原图像进行仿射变换的,从而得到目标图像。3、详解getAffineTransform函数。函数作用:用于生成仿射变换矩阵(1)一个任意的仿射变换都可以表示为:乘以一个矩阵(线性变换),加上一个向量(平移)(2)仿射变换可以用来表示的操作有:旋转(线性变换),平移(向量原创 2021-03-23 09:54:00 · 3739 阅读 · 0 评论 -
图像金字塔——实现图像融合
图像金字塔的一个应用是图像融合。例如,在图像缝合中,你需要将两幅图叠在一起,但是由于连接区域图像像素的不连续性,整幅图的效果看起来会很差。这时图像金字塔就可以排上用场了,他可以帮你实现无缝连接。这里的一个经典案例就是将两个图像融合成一个。例子,代码实现:# -*- coding: utf-8 -*-# @Time : 2021/1/21 14:13# @Author : qxq# @File : 2个图像融合-laplas.py# @Software: PyCharmimp翻译 2021-01-21 14:16:55 · 930 阅读 · 1 评论 -
opencv C++旋转操作操作
1、cv::polylines将点连成线。2、从几何学观点来看,图形放大就是一个相似变换,放大前后的两个图形是完全相似的。而zoom in 或zoom out则不同,这是一个透视变换原创 2020-09-18 10:40:06 · 2788 阅读 · 1 评论 -
将图像下面的像素移到图像上方
import cv2import numpy as npimg = cv2.imread('pic.png', 1)imgInfo = img.shapeheight = imgInfo[0]width = imgInfo[1]mode = imgInfo[2]dst = np.zeros(imgInfo, np.uint8)for i in range(height-50): for j in range( width): dst[i+50, j] = im.原创 2020-08-14 13:45:06 · 161 阅读 · 0 评论 -
python opencv 制作mask
import cv2import numpy as npimport osdef get_bbox(file_path): for subdir in os.listdir(file_path): path=file_path+ '/'+subdir mask_path=file_path+'_label/'+subdir if not os.path.exists(mask_path): os.makedirs(ma.原创 2020-05-27 11:13:54 · 2408 阅读 · 0 评论 -
python-opencv图像扩增操作
import cv2import numpy as npimport osimg = cv2.imread('E:/pycharm_workspace/python_data_process/pic/fox.jpg')def rotate_bound(image, angle): # grab the dimensions of the image and then deter...原创 2020-03-01 18:24:43 · 819 阅读 · 0 评论 -
opencv_阈值分割
#include<opencv2\opencv.hpp>#include<highgui.h>#include<math.h>#include<iostream>using namespace std;using namespace cv;Mat src, dst,gray_src;int threshold_value = 127;...原创 2020-02-25 22:54:01 · 111 阅读 · 0 评论 -
opencv_应用-提取水平与垂直直线_去噪
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;int main(int argc, char** argv){ // read image Mat src, dst; src = i...原创 2020-02-25 22:52:37 · 305 阅读 · 0 评论 -
opencv_霍夫变换_圆检测
相关API cv::HoughCircles霍夫缘检测对噪声比较敏感,所以需要先用中值滤波去噪。基于效率考虑,opencv实现霍夫圆检测是基于图像梯度实习那的,分为2步:1、检测边缘,发现可能的圆心2、基于第一步,从候选圆心开始计算最佳半径#include<opencv2\opencv.hpp>#include<highgui.h>#incl...原创 2020-02-25 22:51:12 · 271 阅读 · 1 评论 -
opencv_霍夫变换-直线
霍夫变换用来做直线检测前提条件:边缘检测已完成(可用canny) 空间平面到极坐标空间的转换。直角坐标空间中的每条直线都可以使用极坐标空间来表示。参数有(r,θ),r表示直线到原点的距离,θ表示“距离线”与x轴坐标的夹角。 因此,可以将图像的每一条直线与一对参数(r,θ)(r,θ)相关联。这个参数(r,θ)(r,θ)平面有时被称为霍夫空间,用于二维直线的集合。r=xcosθ+ysinθ。...原创 2020-02-25 15:20:22 · 233 阅读 · 0 评论 -
opencv_形态学操作
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;/*开操作:先腐蚀后膨胀 作用:能够去掉一些小的对象,保留大的对象闭操作:先膨胀后腐蚀 作用:将小洞给填充上形态学梯度:膨胀减去腐蚀 ...原创 2020-02-24 16:46:30 · 122 阅读 · 0 评论 -
opencv__图像取反
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;int main(int argc, char** argv) { // read image Mat src = imr...原创 2020-02-24 16:45:47 · 525 阅读 · 0 评论 -
opencv_图像的混合操作(C++)
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;int main(int argc, char** argv) { // read image Mat src = imr...原创 2020-02-24 16:45:11 · 496 阅读 · 0 评论 -
opencv__膨胀与腐蚀操作
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;Mat src, dst;int element_size = 3;int max_size = 21;void CallBack_De...原创 2020-02-24 16:44:30 · 102 阅读 · 0 评论 -
opencv_绘制形状和文字
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;Mat bgImage;const char* drawdemo_win = "draw shapes and text demo";voi...原创 2020-02-24 16:43:46 · 125 阅读 · 0 评论 -
opencv__各种滤波操作
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;int main(int argc, char** argv){ // read image Mat src = imread("C:/U...原创 2020-02-24 16:42:46 · 154 阅读 · 0 评论 -
opencv--高斯金字塔—上采样—下采样
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;int main(int argc, char** argv){ // read image Mat src, dst; src = i...原创 2020-02-24 16:41:57 · 3277 阅读 · 0 评论 -
opencv--改变图像亮度和对比度
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;int main(int argc, char** argv){ // read image Mat src = imread("C:/U...原创 2020-02-24 16:41:08 · 100 阅读 · 0 评论 -
opencv-初始化图像
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;int main(int argc, char** argv) { // read image Mat src = imr...原创 2020-02-24 16:39:54 · 1876 阅读 · 0 评论 -
opencv---读取显示图像
#include<opencv2\opencv.hpp>#include<highgui.h>#include<iostream>using namespace std;using namespace cv;int main(int argc, char** argv){ // read image Mat src, dst; src = i...原创 2020-02-24 16:38:54 · 100 阅读 · 0 评论