可以具體說一下是怎么調用的嗎,像我使用C/C++調用這個外部程序(例如Python程序)時,我是這么做的,通過命令行參數(shù)通信,給個模板,注意看我的注釋。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,屏邊企業(yè)網(wǎng)站建設,屏邊品牌網(wǎng)站建設,網(wǎng)站定制,屏邊網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,屏邊網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
C的部分(用C++也行,不過不難,也不是重點):
#includestdlib.h
#includestdio.h
int main(){
char pic_dir[255],pic_dir[255],cmd[255];
printf("What is your pic_dir? (e.g. C:\\a.jpg)\n");
/*雖然我強烈認為命名上應該不用pic_dir而是用pic_path*/
scanf("%s",pic_dir);
printf("What is your pic_name?(e.g. b.jpg)\n");
scanf("%s",pic_name);
printf("so we are calling a python program to deal with those above, please wait...\n");
sprintf(cmd,"python process.py %s %s ",pic_dir,pic_name);
/*這里是一個關鍵點,python的運行目錄在你的PATH環(huán)境變量里有,如下圖最后一行*/
system(cmd);
return 0;
}
process.py:(部分內容,主要是在process方法定義后面加一點東西)
def process(pic_dir,pic_name):
...#(這里的語句體(suite)不用改, 加上后面兩句就行)
from sys import argv
process(argv[1],argv[2])
OK完成
cv2.imshow("left", img_left)
filename3=str(number)+'n3'+'.jpg' #打印第number張圖片+增值方式+保存類型
cv2.imwrite(savedpath + filename3, img_left)
"""
# 數(shù)據(jù)增強實現(xiàn)
"""
import cv2
import numpy as np
import os
# 圖像平移
def img_translation(image):
# 圖像平移 下、上、右、左平移
M = np.float32([[1, 0, 0], [0, 1, 100]])
img_down = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
M = np.float32([[1, 0, 0], [0, 1, -100]])
img_up = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
M = np.float32([[1, 0, 100], [0, 1, 0]])
img_right = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
M = np.float32([[1, 0, -100], [0, 1, 0]])
img_left = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
# 保存圖片,需要保存上述的哪一圖片,就在cv2.imwrite()中,將哪一圖片名放入。
# filename='xxx' +'.jpeg'
# cv2.imwrite(savedpath + filename, img_left)
# 顯示圖形
cv2.imshow("down", img_down)
filename0=str(number)+'n0'+'.jpg'
cv2.imwrite(savedpath + filename0, img_down)
cv2.imshow("up", img_up)
filename1=str(number)+'n1'+'.jpg'
cv2.imwrite(savedpath + filename1, img_up)
cv2.imshow("right", img_right)
filename2=str(number)+'n2'+'.jpg'
cv2.imwrite(savedpath + filename2, img_right)
cv2.imshow("left", img_left)
filename3=str(number)+'n3'+'.jpg'
cv2.imwrite(savedpath + filename3, img_left)
# 圖像縮放
def img_scale(image):
result = cv2.resize(image, (224, 224))
cv2.imshow("scale", result)
filename=str(number)+'n5'+'.jpg'
cv2.imwrite(savedpath + filename, result)
# 圖像翻轉
def img_flip(image):
# 0以X軸為對稱軸翻轉,0以Y軸為對稱軸翻轉, 0X軸Y軸翻轉
horizontally = cv2.flip(image, 0) # 水平鏡像
vertically = cv2.flip(image, 1) # 垂直鏡像
hv = cv2.flip(image, -1) # 水平垂直鏡像
# 顯示圖形
cv2.imshow("Horizontally", horizontally)
filename1=str(number)+'n6'+'.jpg'
cv2.imwrite(savedpath + filename1, horizontally)
cv2.imshow("Vertically", vertically)
filename2=str(number)+'n7'+'.jpg'
cv2.imwrite(savedpath + filename2, vertically)
cv2.imshow("Horizontally Vertically", hv)
filename3=str(number)+'n8'+'.jpg'
cv2.imwrite(savedpath + filename3, hv)
# 圖像旋轉
def img_rotation(image):
# 原圖的高、寬 以及通道數(shù)
rows, cols, channel = image.shape
# 繞圖像的中心旋轉
# 參數(shù):旋轉中心 旋轉度數(shù) scale
M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 30, 1)
# 參數(shù):原始圖像 旋轉參數(shù) 元素圖像寬高
rotated = cv2.warpAffine(image, M, (cols, rows))
# 顯示圖像
cv2.imshow("rotated", rotated)
filename1=str(number)+'n9'+'.jpg'
cv2.imwrite(savedpath + filename1, rotated)
#選裝60度
W = cv2.getRotationMatrix2D((cols / 2, rows / 2), 60, 1)
# 參數(shù):原始圖像 旋轉參數(shù) 元素圖像寬高
rotated1 = cv2.warpAffine(image, W, (cols, rows))
cv2.imshow("rotated", rotated)
filename2=str(number)+'n12'+'.jpg'
cv2.imwrite(savedpath + filename2, rotated1)
#選裝145度
W = cv2.getRotationMatrix2D((cols / 2, rows / 2), 60, 1)
# 參數(shù):原始圖像 旋轉參數(shù) 元素圖像寬高
rotated2 = cv2.warpAffine(image, W, (cols, rows))
cv2.imshow("rotated", rotated)
filename3=str(number)+'n13'+'.jpg'
cv2.imwrite(savedpath + filename3, rotated2)
# 圖像加噪
def img_noise(image, mean=0, var=0.001):
'''
添加高斯噪聲
mean : 均值
var : 方差
'''
image = np.array(image / 255, dtype=float)
noise = np.random.normal(mean, var ** 0.5, image.shape)
out = image + noise
if out.min() 0:
low_clip = -1.
else:
low_clip = 0.
out = np.clip(out, low_clip, 1.0)
out = np.uint8(out * 255)
cv2.imshow("noise", out)
filename3=str(number)+'n10'+'.jpg'
cv2.imwrite(savedpath + filename3, out)
# 圖像亮度調節(jié)
def img_brightness(image):
contrast = 1 # 對比度
brightness = 100 # 亮度
pic_turn = cv2.addWeighted(image, contrast, image, 0, brightness)
# cv2.addWeighted(對象,對比度,對象,對比度)
'''cv2.addWeighted()實現(xiàn)的是圖像透明度的改變與圖像的疊加'''
cv2.imshow('bright', pic_turn) # 顯示圖片
filename3=str(number)+'n11'+'.jpg'
cv2.imwrite(savedpath + filename3, pic_turn)
if __name__ == '__main__':
i = 0
path = '../Data/'
print(path)
savedpath = './result_new/'
filelist = os.listdir(path)
total_num = len(filelist)
for item in filelist:
number = i + 1
i = number
print("######")
print("打印到第",i,"張圖片")
src = cv2.imread(path + item)
img_translation(src)
img_scale(src)
img_flip(src)
img_rotation(src)
img_noise(src)
img_brightness(src)
cv2.waitKey(0)
cv2.destroyAllWindows()
代碼較為繁瑣,有空之后進行優(yōu)化
輸出結果
第一步,定義一個變量n1并賦值為987,調用bin函數(shù)將n1轉換成二進制,
第二步,再次定義一個變量n2并賦值一個長整型,使用bin函數(shù)轉換,第三步,如果傳入的參數(shù)是一個邏輯值或是一個字符串,使用bin函數(shù)返回什么結果,第四步,定義一個列表變量n4,并進行賦值;然后調用bin函數(shù),結果發(fā)現(xiàn)出現(xiàn)了報錯,第五步,如果傳入的參數(shù)是一個負數(shù),使用bin函數(shù)轉換之后,對應的結果也為負數(shù),第六步,定義變量n6,并進行賦值為0,結果發(fā)現(xiàn)返回的值也是0,并且是二進制數(shù),注意事項
注意python語言中的bin函數(shù)的用法
注意bin函數(shù)的傳入?yún)?shù)和返回值
reg = r'src="(.+?\.jpg)" pic_ext'
pic_ext 是匹配源里要包含的東西,也就是說源內容一定要以 pic_ext結尾才匹配成功。
import?turtle,?math
def?pic(x0,?y0,?x1,?y1):
dis?=?int(math.sqrt((x0?-?x1)?**?2?+?(y0?-?y1)?**?2))
turtle.hideturtle()
turtle.up()
turtle.goto(x0,?y0)
turtle.down()
turtle.goto(x1,?y1)
turtle.left(math.atan2(y1?-?y0,?x1?-?x0)?/?math.pi?*?180)
turtle.up()
turtle.backward(dis?/?2)
turtle.write('長度為:%s'?%?dis,?align='left')
turtle.done()
def?palin():
k?=?[]
total?=?[]
for?i?in?range(10,?200000):
while?i??0:
k.append(i?%?10)
i?=?i?//?10
for?m?in?range(len(k)?//?2):
if?k[m]?!=?k[len(k)?-?m?-?1]:
break
else:
print(k)
total.append(k)
k?=?[]
print(len(total))
if?__name__?==?'__main__':
x0?=?int(input('輸入A的橫坐標:'))
y0?=?int(input('輸入A的縱坐標:'))
x1?=?int(input('輸入B的橫坐標:'))
y1?=?int(input('輸入B的縱坐標:'))
pic(x0,?y0,?x1,?y1)
palin()
我把這兩個放在一個主函數(shù)里運行了