初步编程
无左无右
好记性不如破键盘---点滴、积累、进步!
展开
-
python 图像加水印文字
from PIL import Image,ImageDraw,ImageFontimage = Image.open("/data_1/everyday/0401/dog1.jpg")text = "仅供授权证明用,他用无效 \n有效期:20210401-20210430"font=ImageFont.truetype("/data_1/data_1T-2-ok/Yang/software/window-fonts/simhei.ttf", 20) #/data_1/data_1T-2-ok/.原创 2021-04-01 10:58:50 · 186 阅读 · 0 评论 -
opencv 图像倾斜校正
今天的任务是如图这两种情况,我现在的情况是和如图一样的,左图左边倾斜一点儿,那么我需要把左边压低倾斜校正。右图,右边倾斜我需要把右边下压到水平位置倾斜校正。我的场景不会有大角度的倾斜,就这么点可能的不会超过45°的小角度。恩,标准的传统图像处理方法。首先就是灰度,二值化,取轮廓,筛选得到目标(面积最大的那个),得到倾斜角度,转正。具体过程就不详细说了,都在代码里面一看就懂。效果图如下:呃呃呃,但愿多少年后csdn没有把的图弄丢把,csdn经常会把之前写的博客里面的图片不显示,弄没了。太垃圾了。```原创 2021-03-25 20:29:30 · 5085 阅读 · 0 评论 -
有关编译,库相关问题,未定义的引用
有关编译,库相关问题博客园关闭了?没法发、修改文章了,就在这里记录一下吧。之前的cmakelist是这么写的,没有问题cmake_minimum_required(VERSION 2.6)project(refinedet)add_definitions(-std=c++11)option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)set(CMAKE_CXX_STANDARD 11)set(CMAKE_BUILD_TYPE Debug)# tensorrt原创 2021-03-23 15:53:17 · 2453 阅读 · 3 评论 -
opencv 旋转
#include"opencv2/highgui/highgui.hpp"#include"opencv2/imgproc/imgproc.hpp"#include <iostream>using namespace std;using namespace cv;void CalcRotateMatrix(const cv::Mat& img, float...原创 2019-12-28 18:33:00 · 215 阅读 · 0 评论 -
透视变换 任意角度 三维透视 python c++ opencv两种语言
效果图:键盘控制各个x,y,z,还有fov数值一开始的w, h = img.shape[0:2]这里宽、高错乱,原因未知,只能这么用python版本的:# -*- coding:utf-8 -*-import cv2import numpy as npdef rad(x): return x * np.pi / 180img = cv2.imread("./dog.jpeg...原创 2019-10-29 09:23:09 · 400 阅读 · 0 评论 -
指针数组,字符数组----一个很有趣的小问题
#includeusing namespace std;void main(){char p[]="yang";// char *p="yang";p[0]='L'; cout<<p<<endl;}哪个有问题?为什么原创 2016-04-15 11:45:28 · 493 阅读 · 0 评论 -
【技巧】数组作为另一个数组的下标
数组作为另一个数组的下标,这相当于统计了。。我目前有三处遇到了。其一:是笔试题里的,有个数组a[100]存放了100个数,这100个数取自1-99,且只有两个相同的数,剩下的98个数不同。写一个搜索算法找出相同的那个数的值(注意空间效率和时间效率要尽可能低)这题目,我能整出来的是暴力搜索了。。。。回来给小曹一看,他看了不到半分钟,说可以再申请一个100的数组,然后把题目中数组作为下标,原创 2016-10-23 18:54:17 · 4447 阅读 · 0 评论 -
由char a[]={‘你‘,‘海’,‘林’};cout<<a[1]牵扯到的
输出是空白,但是我强制输出十六进制如下a【1】对应的是海。 那为什么是A3呢?按理说中文字符在内存中是占2个字节的,但是char型只占一个,所以高位会截断。这些都是小曹给我解释的,,见微知著啊!其实这些都是基础,要知其然知其所以然原创 2016-09-29 09:43:52 · 418 阅读 · 0 评论 -
关于RotateRect的一些说明
说明:以下的内容有一部分来源于网络。摘录自这个博客:http://www.mamicode.com/info-detail-1328031.htmlRotatedRect中返回的角度angle,在在水平轴和第一条边之间的角度。(好简洁,但是真的并没有太明确)下面的是作者的理解图,感觉不错这里我补充一下,对于哪个边是width,哪个边是height。是X轴逆时针旋转...原创 2016-11-06 20:37:42 · 6570 阅读 · 0 评论 -
随机数的产生
#include#includeusing namespace std;void main(){ srand((unsigned)time(NULL)); for(int i=0;i<10;i++) { cout<<(rand()%255)<<"\t\t\t";//cout<<(rand()&255)<<"\t\t\t"; }}原创 2016-11-08 21:54:08 · 289 阅读 · 0 评论 -
读取坐标数据并标记
从txt文本读取坐标并在一张图上标记,文本如下格式:第一个是横坐标X第二个是Y。总共168对数据坐标#include#include "opencv2/opencv.hpp"#include#includeusing namespace std;using namespace cv;void main(){ Mat img=imread("3.jpg"); i原创 2016-11-08 22:01:26 · 1467 阅读 · 0 评论 -
关于内存报错的奇怪问题
今天把中值滤波的程序自己又写了一下,基本没看吧,都是自己写的,效果图出来了自己还有有一点欣慰的。但是出现一个奇怪的问题。就是我刚开始动态申请的内存int *arr=new int[width*height];没有delete[]arr的时候是能够运行的,后来我写好了想完善一下,在函数结束之前用delete释放,但是这一整反而内存报错了,我很是纳闷。先上代码吧!#include "opencv2原创 2016-11-09 22:26:47 · 439 阅读 · 0 评论 -
简单的C编程题
题目要求:编写一个程序,统计pstr所指字符串中所有非字母的个数,并去除这些非字母字符,然后将剩余字符进行大小写互换并输出。如char *pstr=“&vIS4ION,wa6re”,则非字母个数为4,输出为“VisionWARE” 。一开始这样编写的:#includeusing namespace std;void main(){int i=0,j=0,m=0;原创 2015-11-25 00:35:48 · 454 阅读 · 1 评论 -
两个字符串的最大公串
问题: 用C语言编写一个函数,返回两个字符串的最大公串。例如,“adbccadebbca”和“edabccadece”,返回“ccade”这个问题题目就简短的几个字,但是实际很复杂,在我看来,以下是百度的代码:#include using namespace std;char* Max(const char *p,const char *q){static char a[20原创 2016-09-23 17:24:00 · 1433 阅读 · 0 评论 -
编程题 翻转数组
一开始提交只有百分之20的通过率,然后发现是for(i=0;i#include using namespace std;int main(){ int n; cin>>n; int *a=new int[n]; int i=0,j=0; for(i=0;i<n;i++) { cin>>a[i]; } int flg1=0,flg2=0,flg3=0,flg4=0;原创 2016-09-16 22:43:20 · 874 阅读 · 0 评论 -
遍历某文件夹下所有文件,并输出保存在txt
#include#include "io.h"#includeusing namespace std;ofstream MyFile("FileName.txt");bool transfer(string fileName , int txtNum = 0){ _finddata_t fileInfo; long handle = _findfirst(fileName.c_原创 2016-07-06 10:10:16 · 6332 阅读 · 0 评论 -
【数据结构】线性表的顺序存储完整程序
数据结构,线性表的顺序存储完整程序#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<iostream.h>#define LIST_INIT_SIZE 100#define LISTNCREMENT 10typedef struct { int *elem; int length; int原创 2016-07-26 14:41:18 · 3041 阅读 · 0 评论 -
深入理解指针的指针
问:程序能否达到目的:在GetMemory()中为main函数中的开辟空间,并将str指向这段空间?#include "stdafx.h"#include using namespace std;void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char) * num); //p = new char[num];转载 2016-07-26 17:31:10 · 434 阅读 · 0 评论 -
【数据结构】单链表
PS:是模仿别人的来写的,调试成功,注意指针的指针用法,还有函数指针作为实参的调用形式 #include#includetypedef struct Person{ char name[20]; int age;} ElemType;typedef struct LinkNode{ ElemType data; struct LinkNode *next;} *Poin原创 2016-07-28 17:26:37 · 348 阅读 · 0 评论 -
中值滤波
#include"iostream"#include "opencv2/opencv.hpp"using namespace std;using namespace cv;uchar GetMedianFilter(uchar *a,int len){ uchar tmp; //冒泡排序 for(int i=0;i<len-1;i++) for(int j=0;j<len-i原创 2016-08-16 10:43:33 · 595 阅读 · 0 评论 -
膨胀 腐蚀 开闭运算
#include"iostream"#include"opencv2/opencv.hpp"using namespace cv;using namespace std; void Erode(uchar *src,uchar *dst,uchar *a,int nWidth,int nHeight,int StructW,int StructH) //{ //腐蚀 和结构元原创 2016-08-16 17:23:18 · 519 阅读 · 0 评论 -
再写图像旋转算法
之前照着书写过一次,但是只按照书上的公式来编程的,至于公式怎么来的没有深究,书上讲的也不是很详细,甚至细节的部分是错误的。这次好好的研究了图像旋转算法。在这过程中网上看了好多,但是都不是太明白。然后到知网里找论文看,一篇论文图文并茂,我才真正懂了。以下是论文截图:这里我总结下,首先一张图片的坐标系是O1,为了旋转,要把O1坐标系转化为O0坐标系下用旋转公式旋转,然后再把此时的O0坐标系原创 2016-08-18 14:50:57 · 5859 阅读 · 6 评论 -
编程-股神
经过在草稿纸上分析可知,1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 。。。211 + - + + - + + + - + + + + - - 可以看到3,6,10,15,21对应是负的 它们之间间隔是3,4,5,6, 所以我只要知道原创 2016-09-17 19:35:27 · 1346 阅读 · 0 评论 -
opencv floodFill 漫水填充
所谓的floodFill 漫水填充就是在一张图片中,和种子点像素相差在[-loDiff,+upDiff]的时候就用newVal来填充这个点。在OpenCV中,漫水填充算法由floodFill函数实现,其作用是用我们指定的颜色从种子点开始填充一个连接域。连通性由像素值的接近程度来衡量。OpenCV2.X有两个C++重写版本的floodFill。int floodFill(InputOut原创 2016-10-29 20:51:19 · 6951 阅读 · 0 评论 -
【面试题】
今天面试做笔试题碰到这题:#includeusing namespace std;void main(){ char str1[]="abc"; char str2[]="abc"; const char str3[]="abc"; const char str4[]="abc"; const char *str5="abc"; const char *str6="abc原创 2016-10-20 21:11:10 · 378 阅读 · 0 评论 -
一道图像处理的笔试题,算子操作图像后的输出图像
算子是 [-1,0,1, -1,0,1 -1,0,1] 图片如下:经过我的推敲计算给出的答案是只剩下4个竖白线。呃呃呃,回来自己敲代码发现还是错了。。。下面是代码:#include#include"opencv2/opencv.hpp"using namespace cv;using namespace std;原创 2016-11-15 17:11:59 · 670 阅读 · 0 评论 -
coco数据集标注文件json格式化查看
ubuntu如何快速格式化json文件 https://jingyan.baidu.com/article/15622f242d1db5fdfcbea5bd.html安装jq工具sudo apt-get updatesudo apt-get install jq格式化json文件输出到新文件cat 文件名 | jq . >newfile.json例子:cat instanc...原创 2019-06-12 15:06:38 · 3855 阅读 · 1 评论 -
opencv图像基本操作-上下左右平移-放大-缩小-旋转-还原
按键完成相应的操作按键完成#include <iostream>#include<opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;Mat pingyi(Mat src,int detal_x,int detal_y){ Mat ds...原创 2019-05-07 14:04:13 · 3346 阅读 · 0 评论 -
两张图片拼接+文件重定向?
#include <iostream>#include<opencv2/opencv.hpp>#include <iostream>#include <string>using namespace std;using namespace cv;int main(){ fstream infile("/media/d_2/ev...原创 2019-02-18 20:01:23 · 248 阅读 · 0 评论 -
编译不通过纠察
今天把一个在公用的函数功能块(检测水印时间)挪到另外一个cpp里面.当然这个模块调用了很多函数.然后挪好了,就是编译报错,是那种链接库的错误,这类错误不容易查找原因./usr/bin/ld: date_stamp.o: relocation R_X86_64_PC32 against undefined 符号 `_ZL16lstm_rec_processP4LSTMRSt6vectorIN...原创 2019-01-08 17:19:19 · 719 阅读 · 0 评论 -
C++ map
//map 的初始化#include<iostream>using namespace std;int main(){ map<string,int> map_name_score; map_name_score["C"]=10; map_name_score.insert({"A",40}); map_name_score.ins...原创 2018-12-22 16:03:19 · 272 阅读 · 0 评论 -
C++ protobuf测试使用
我电脑ubuntu16.04,我们工程里面用的protobuf-3.1.0版本的,是指定目录安装的,我打开其安装目录, 所以不管是这个,其他的比如opencv也是这样子的,编译生成这三种在QT工程里面的pro这么写的:OPENCV_ROOT_PATH = /home/softwareCAFFE_ROOT_PATH = /media/d/caffe_rootPROT...原创 2018-11-02 17:04:45 · 4907 阅读 · 0 评论 -
C++ xls数据漏斗操作
C++ xls操作原创 2018-05-08 15:51:52 · 651 阅读 · 0 评论 -
[造样本]小图贴到背景图上
int main(){ Mat img(32,320,CV_8UC3,Scalar(187,189,183));// imshow("img",img);// waitKey(); Mat m_aim=imread("/media/d_2/everyday/0412/ZAO/1.png"); int aim_width=m_aim.cols; i...原创 2018-04-12 17:54:42 · 319 阅读 · 0 评论 -
opencv3.2 hog训练
本次是在一格长条上面训练"通过"关键词,我只准备了100多张样本,然后用起来的效果不是很好,没有耐心搞好多样本,不知道是不是样本量过少,还是其他问题,先把能跑的代码粘这里:注意一开始运行是报错的,因为pro里面木有添加相关库 pro如下:OPENCV_ROOT_PATH = /home/yhl/softwareINCLUDEPATH += $${OPENCV_ROOT_PATH}/include...原创 2018-04-12 09:54:36 · 859 阅读 · 0 评论 -
C && C++中产生随机数(rand,srand用法)
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。)我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出...原创 2018-03-02 17:26:37 · 907 阅读 · 0 评论 -
ofstream 向txt写东西
头文件包含:#include <fstream>using namespace std; ofstream out_file("out/out_.txt"); out_file<<"sum="<<sum_<<endl; out_file<<"no_move="<&l原创 2018-03-01 15:14:05 · 3167 阅读 · 0 评论 -
关于流 fstream
今天遇到需求,就是从一个roi图找到其原图,现在只有根据其名称去找,车架号。我的roi图名字如下格式:/media/d/Yang/MyData/tmp_8_12/L3THBBEB9FH000519.jpg/media/d/Yang/MyData/tmp_8_12/L6T7622S2BN040160.jpg/media/d/Yang/MyData/tmp_8_12/L6T7844S0AN原创 2017-08-15 17:01:19 · 454 阅读 · 1 评论 -
[linux] cp指令
QT5 在ubuntu16。04无法输入中文解决方式 在网上查看教程 http://blog.csdn.net/yudiyanwang/article/details/53487854#comments按照这个来的直接输入cp指令提示没不到目录 第一个目录在我电脑里面找到,第二个确实找不到 然后我搜索关键词找到了我电脑里面的安装目录 /home/yhl/Qt/Tools/QtCrea原创 2017-08-12 10:55:05 · 419 阅读 · 0 评论 -
DFS 深度优先搜索
在读啊哈算法这本书,其中全排列的问题首次引出了深度优先搜索算法。然后按照书上的一个问题写的代码,老是输不出结果。问题是1,....,9两个三位数字相加等于另外三位数,把1到9全部用了。输出可能的组合。#includeint a[10],book[10];void dfs(int step){ int i; //一开始放在全局位置的 输不出结果 if(step==10) {原创 2017-06-25 18:01:15 · 304 阅读 · 0 评论