我的基本函數備忘

1.OpenCV1

IplImage* img=cvLoadImage("D:\\road.jpg");
cvNamedWindow("image",CV_WINDOW_AUTOSIZE);
cvShowImage("image",img);
cvWaitKey(0);

2.OpenCV2

Mat img=imread("D:\\road.jpg");
imshow("顯示",img);
waitKey(0);
rectangle(dst, Point(left,top), Point(right, bot), CV_RGB(255, 255, 0), 1, 8, 0);
cvtColor(matFrame2,left,CV_BGR2GRAY);
Mat left(480,640,CV_8UC1);
Mat a=Mat::zeros(480,640,CV_8UC3);
resize(l,l1,l1.size);
cvtColor(matFrame2,left,CV_BGR2GRAY);
imwrite("r.jpg",matFrame1);
outputImage.at<Vec3b>(i,j)[0] =  outputImage.at<Vec3b>(i,j)[0]/div*div + div/2;
putText(dst,"hello",Point(left,top+10),FONT_HERSHEY_SIMPLEX,0.4,Scalar(0,0,0),1,1);
circle(output, Point2f(640/2,987/2), 8, Scalar(0, 255, 0), -1, 8);
rectangle(dst, Point(left,top), Point(right, bot), CV_RGB(255, 255, 255), 1, 8, 0);
little.copyTo(img_out(Rect(0,0,128,96)));
vector<vector<Point2f>> imgPoints;imgPoints= vector<vector<Point2f>>(4);//容器初始化
//---<通道合併>---//
	Mat rgbChannels;
	vector<Mat> rgbChannels_r;
	rgbChannels_r.push_back(img_gray);
	rgbChannels_r.push_back(img_gray);
	rgbChannels_r.push_back(img_gray);
	merge(rgbChannels_r,rgbChannels);
//--->通道合併<---//

//---<保存視頻>---//
static VideoWriter writer("/home/leon/Downloads/Video.avi", CV_FOURCC('M', 'J', 'P', 'G'), 15.0, Size(bigImg.cols,bigImg.rows));
writer << big;
writer.release();
//--->保存視頻<---//

3.C++

memset(buf, 0, sizeof(buf));
memcpy(bufb,buff,sizeof(bufb));
MyPicProcess *picprocess0=new MyPicProcess();
long t_start=GetTickCount();//獲得系統運行時間,毫秒
int b=(int)(a+0.5);//四捨五入
//---<讀txt>---//
	#include <fstream>
	ifstream infile;
	int frame;
	infile.open("F:\\TestProject\\33.txt");
	infile>>frame;
	infile.close();
//--->讀txt<---//
//---<寫txt>---//
	int frame=1;
	FILE* fpss=fopen("F:\\TestProject\\\\1.txt","a");
	fprintf(fpss,"%d ",frame);
	fprintf(fpss,"\r\n");    
	fclose(fpss);
//--->寫txt<---//
//---<int高8位和低8位存到uchar+反向>---//
	int pix_x=100;
	int pix_y=135;
	uchar pix_x_c0=pix_x & 0xff;//低8位
	uchar pix_x_c1=(pix_x>>8) & 0xff;//高8位
	pix_x=pix_x_c1;//高8位
	pix_x=pix_x<<8;
	pix_x=pix_x_c0;//低8位
//--->int高8位和低8位存到uchar+反向<---//
//---<float轉CString轉String>---//
	Mat img=imread("D:\\road.jpg");
	float radar_y=1.2;
	float radar_speed=2.5;
	string ccc;
	CString TEMP,TEMP1,TEMP2;
	TEMP1.Format(_T("%.2fm"),radar_y);
	TEMP2.Format(_T("%.2fm/s"),radar_speed);
	TEMP=TEMP1+","+TEMP2;
	ccc = CT2A(TEMP.GetBuffer());
	putText(img,ccc,Point(100,100),FONT_HERSHEY_SIMPLEX,0.4,Scalar(0,0,0),1,1);//ccc爲String類型
//--->float轉CString轉String<---//
//---<float轉stringstream轉String>---//
	using namespace std;
	Mat img=imread("D:\\road.jpg");
	float radar_y=1.2;
	float radar_speed=2.5;
	string name1,name2,name;
	stringstream s1,s2;
	s1<<radar_y;
	s1>>name1;
	s2<<radar_speed;
	s2>>name2;
	name=name1+"m,"+name2+"m/s";
	putText(img,name,Point(100,100),FONT_HERSHEY_SIMPLEX,0.4,Scalar(0,0,0),1,1);//ccc爲String類型
//--->float轉stringstream轉String<---//
//---<float通過sprintf轉化爲string>---//
	Mat img=imread("D:\\road.jpg");
	float radar_y=1.2;
	float radar_speed=2.5;
	char XYK;
	sprintf(&XYK,"%.2fm,%.2fm/s",radar_y,radar_speed);
	putText(img,&XYK,Point(10,10),FONT_HERSHEY_SIMPLEX,0.4,Scalar(0,0,0),1,1);
//--->float通過sprintf轉化爲string<---//
//---<char*轉CString>---//char*轉string也類似
	CString CXYK;
	char XYK
	CXYK=&XYK;
//--->char*轉CString<---//
//---<String轉char*>---//
string st = "My test";
char *st1 = const_cast<char *>(st.c_str());
//--->String轉char*>---//
//---<String轉CString然後顯示控件文字>---//
CMFCApplication1Dlg *dlg= (CMFCApplication1Dlg *)this;
CString aaa;
CA2T szr((name).c_str());
aaa = (LPCTSTR)szr;
dlg->GetDlgItem(IDC_EDIT1)->SetWindowText(aaa);
//--->String轉CString然後顯示控件文字<---//

//---<互斥鎖>---//
    CCriticalSection aaa;
	Mat lll;
	aaa.Lock();
	matFrame1.copyTo(lll);
	aaa.Unlock()
//--->互斥鎖<---//
//---<win32創建線程>---//
DWORD WINAPI Thread1(LPVOID lpParameter);
HANDLE hThread1=CreateThread(NULL,0,Thread1,NULL,0,NULL);//啓動一個線程
CloseHandle(hThread1);//關閉一個線程
DWORD WINAPI Thread1(LPVOID lpParameter)
{
	return 0;
}
//--->win32創建線程<---//

4.Linux

sudo vim /etc/profile
cp -r aaa bbb  #複製文件夾及文件夾內的所有內容:
mkdir build  #新建文件夾:
sudo apt-get install exfat-utils  #exfat格式U盤讀取
locate lib  #查找文件
rm -f .bashrc.swp #bashrc未成功關閉解決辦法
ln -s /home/leon/MyProgram /home/leon/Desktop/LnMyProgram  #創建軟連接
sudo apt-get autoremove libboost1.54-dev  #刪除當前安裝的boost,注意1.54要對應版本
sudo vim /etc/profile #系統環境變量
sudo chown -R $USER:$USER /home/www  #本機和服務器該權限
apt-get -f install

#---<環境變量配置>---#
sudo ldconfig
sudo gedit ~/.bashrc
添加: PATH=/usr/local/protobuf/bin:$PATH
source ~/.bashrc
#--->環境變量配置<---#

%---<Anaconda3使用>---%
conda create -n python36 python=3.6  #創建虛擬環境
source activate python36  #激活虛擬環境
conda info --env  #查看環境
python --version  #查看版本
source deactivate python36  #返回默認環境
conda remove --name python36 --all  #刪除已有環境
%--->Anaconda3使用<---%

%---<查看版本>---%
cat /usr/local/cuda/version.txt  #cuda版本 
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  #cudnn版本 
pkg-config --modversion opencv  #OpenCV版本
whereis protoc  #查看哪些路徑安裝了protoc
which protoc  #查看默認選用protoc的路徑
protoc --version  #查看當前protoc版本
%--->查看版本<---%

%---<deb格式文件安裝>---%
sudo apt-get install -f
sudo dpkg -i deb文件名
%--->deb格式文件安裝<---%

%---<雙系統Windows分區無法查看>---%
sudo fdisk -l #查看分區掛在情況
sudo ntfsfix /dev/sda5 #修復掛在錯誤的分區
%--->雙系統Windows分區無法查看<---%

5.Python

which python  #查看python路徑
print("!!! %s" % abs_xml_path)
print('\n' + abs_xml_path)
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))) #獲取當前目錄上一級目錄
# ---<遞歸import上一級目錄>---#
import os
import sys
sys.path.append("..")
sys.path.extend([os.path.join(root, name) for root, dirs, _ in os.walk("../") for name in dirs])
# --->遞歸import上一級目錄<---#

import cv2
img = cv2.imread("/media/leon/D/MyImg/face.jpg")  
b,g,r = cv2.split(img)  
cv2.imshow("SSD", b)
cv2.waitKey(0)

#---<字典和列表寫入json>---#
# coding=UTF-8
import json
nid = "1,2"
print(nid.split(','))
datas = []
for i in nid.split(','):
    mydict = {}
    mydict["id"] = str(i)
    mydict["checked"] = True
    datas.append(mydict)
print(str(datas))
test_dict = {"haha":datas}
print(test_dict)
json_str = json.dumps(test_dict)
new_dict = json.loads(json_str)
with open("./record.json","w") as f:
    json.dump(new_dict,f)
    print("寫入json完成...")
#--->字典和列表寫入json<---#

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章