標題:解決"CV_BGR2RGB"未被宣告的問題
今天使用OpenCV4的時候,發現報錯了,"CV_BGR2RGB"居然不能用。
cvtColor(img, img, CV_BGR2RGB);//這行錯了
原因是因為OpenCV4改用"COLOR_BGR2RGB"而不是"CV_BGR2RGB"了。
所以
只要把它改成"COLOR_BGR2RGB"後,就可以執行了。
cvtColor(img, img, COLOR_BGR2RGB);//這行可以執行
標題:解決"CV_BGR2RGB"未被宣告的問題
今天使用OpenCV4的時候,發現報錯了,"CV_BGR2RGB"居然不能用。
原因是因為OpenCV4改用"COLOR_BGR2RGB"而不是"CV_BGR2RGB"了。
所以
只要把它改成"COLOR_BGR2RGB"後,就可以執行了。
標題:tensorflow logging.h編譯失敗的解法
今天編譯tensorflow C++的時候,發現logging.h無法編譯(編譯失敗),如圖:
那個叫「TF_DEFINE_CHECK_OP_IMPL」的東西總是給紅底線的報錯。
如何解決呢。
去專案屬性的地方,在C/C++/前置處理器/前置處理器定義的地方,新增「NOMINMAX」。
接著回到code的地方,會看見「TF_DEFINE_CHECK_OP_IMPL」的紅底線已經消失,而且已經可以編譯了。
標題:在Visual Studio 2019安裝Tensorflow C語言環境
搜尋標題:Visual Studio 2019 install Tensorflow for C
今天要來用Visual Studio 2019執行C語言版本的Tensorflow。
這個教學給的範例應該不難,有問題再留言問我。
直接進入正題吧!
首先,點進去這個網址:
https://www.tensorflow.org/install/lang_c
然後依照作業系統和CPU/GPU等需求下載檔案。
然後會下載到一個檔名類似「libtensorflow-gpu-windows-x86_64-2.6.0.zip」的檔案,把它解壓縮。
我們會看到資料夾中有個include資料夾和lib資料夾。
這兩個資料夾的名稱,要記好,等一下會使用好幾次。
然後開啟Visual Studio,建立C++版本的主控台應用程式。
在VC++目錄的「include目錄」加上include資料夾的路徑。
我的範例是「C:\libtensorflow-gpu-windows-x86_64-2.6.0\include」
在VC++目錄的「程式庫目錄」加上lib資料夾的路徑。
我的範例是「C:\libtensorflow-gpu-windows-x86_64-2.6.0\lib」
然後去連接器/輸入/其他相依性 的地方,輸入tensorflow.lib。
「tensorflow.lib」存在於lib資料夾。
都設定完成後按套用確定。
然後輸入以下程式碼(可以直接複製):
如圖:
標題:[教學]建立token並push程式到github上(2021/09)
完整標題:[教學]建立access token並push程式到github上(2021/09)
最近使用git push新版本的程式到github上時,卻發現不能push。
現在來建立一個access token吧。
首先,進入github,到右邊的地方點自己的頭貼,然後按「Settings」。
它會請求輸入github帳號,就把帳號輸入進去。
然後會要求輸入密碼,就貼上剛剛複製的「Personal access tokens」就好。
標題:驗證碼總是輸入錯誤的解決方法
點進來這個頁面的,想必都是因為在網頁上輸入的驗證碼總是錯誤,而且試到沒路了吧。
如果你的電腦有裝卡巴斯基防毒,那這個驗證碼錯誤就非常有可能是卡巴斯基防毒造成的問題了,以下將提供解法。
驗證碼錯誤的情況:
像這個陽明交大的網站,輸入任何驗證碼都錯,原因是因為卡巴斯基防毒搞得鬼。
首先進入卡巴斯基防毒軟體介面,按左下角的設定圖案。
然後看見有個「注入指令碼到網頁流量從而與網頁互動」的選項。
把這個垃圾選項給取消勾選。
儲存設定後,重開瀏覽器,驗證碼就可以輸入了。
標題:[教學]將Winows10的中文輸入法預設為英文
[教學]將Win10的中文輸入法預設為英文
本篇文章網址:https://corettainformation.blogspot.com/2021/06/win10.html
常常用Windows10用cmd、改檔案名稱或開軟體存檔時,想打的是英文,但發現打出來的是中文,很麻煩,所以今天就來將預設的中文輸入法改成英文。
就不用每次都要按shift了。
操作步驟:
1.開啟控制台,選擇時鐘和區域
4.慣用語言的地方有個「中文(繁體、台灣)」,按它下方的選項。
改好後,每當開啟應用程式或改檔名時,預設的輸入模式就是英文了。
想打中文時,按一下shift就可以了。
#引入numpy套件
import numpy as np
#將串列轉成ndarray陣列
a=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
#印出陣列的形狀
print(a.shape)
#(12,)
print(a)
#[ 1 2 3 4 5 6 7 8 9 10 11 12]
#將a轉成3*4的二維陣列
a.shape=3,4
#印出a的內容
print(a)
'''
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
'''
#將a轉成2*6的二維陣列
a=a.reshape(2,6)
#印出a的內容
print(a)
'''
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
'''
#指定第[0,5]的數字為33
a[0,5]=33
print(a)
'''
[[ 1 2 3 4 5 33]
[ 7 8 9 10 11 12]]
'''
#指定第[1,5]的數字為66
a[1,5]=66
print(a)
'''
[[ 1 2 3 4 5 33]
[ 7 8 9 10 11 66]]
'''
#印出a的最大值、最小值、中位數
print(a.max(),a.min(),np.median(a))
#66 1 7.5
#矩陣運算,將a的所有數字加上5後乘以2
a=(a+5)*2
print(a)
'''
[[ 12 14 16 18 20 76]
[ 24 26 28 30 32 142]]
'''
#印出有哪些數字大於30
print(a>30)
'''
[[False False False False False True]
[False False False False True True]]
'''
#印出大於30的數字
print(a[a>30])
#[ 76 32 142]
#將大於30的數字歸零
a[a>30]=0
print(a)
a=np.sort(a)
print(a)
'''
[[ 0 12 14 16 18 20]
[ 0 0 24 26 28 30]]
'''
#建立0到59,間隔為10的陣列,並指派到b
b=np.arange(0,60,10)
print(b)
#[ 0 10 20 30 40 50]
#將一維陣列改成為二維陣列
b=b.reshape(-1,1)
print(b)
'''
[[ 0]
[10]
[20]
[30]
[40]
[50]]
'''
#將上方的二維陣列加上[0, 1, 2, 3, 4, 5]
b=np.arange(0,60,10).reshape(-1,1)+np.arange(0,6)
print(b)
'''
[[ 0 1 2 3 4 5]
[10 11 12 13 14 15]
[20 21 22 23 24 25]
[30 31 32 33 34 35]
[40 41 42 43 44 45]
[50 51 52 53 54 55]]
'''
#範例:若沒有轉成二維陣列就相加的情況
temp=np.arange(0,60,10)+np.arange(0,6)
print(temp)
#[ 0 11 22 33 44 55]
#選取中間(去除掉外框的部分)
print(b[1:-1,1:-1])
'''
[[11 12 13 14]
[21 22 23 24]
[31 32 33 34]
[41 42 43 44]]
'''
#將中間歸零
b[1:-1,1:-1]=0
print(b)
'''
[[ 0 1 2 3 4 5]
[10 0 0 0 0 15]
[20 0 0 0 0 25]
[30 0 0 0 0 35]
[40 0 0 0 0 45]
[50 51 52 53 54 55]]
'''
#待更新
標題:[教學]在QT中新增菜單
本篇文章網址:https://corettainformation.blogspot.com/2021/06/qt.html
//首先,建立一條MenuBar
//調用QMainWidow的成員函數menuBar後,只要將表單新增進去就能添加到QMainWidow中。
QMenuBar* mb = menuBar();
//接著新增一個Menu菜單,上面寫檔案
QMenu* menu = new QMenu("檔案(&F)");
//建立菜單的第二層,上面寫New
QAction* action = new QAction("New", NULL);
//將第二層菜單加入第一層菜單項中
menu->addAction(action);
//綁定按下後要執行的函數(kaleido_painter::open),這行可省略或自行更改。
connect(action, &QAction::triggered, this, &kaleido_painter::open);
//將菜單項加入MenuBar中
mb->addMenu(menu);
結果如下:
標題:在QT的connect傳入函數的參數
關鍵字:QT、connect、parameter
本篇文章網址:https://corettainformation.blogspot.com/2021/06/qtconnect.html
今天使用C++寫QT程式時,想要讓QT按下清單時可以執行showSecondary_Window函數,然後又要傳mosaic_Window的參數進去。
本來程式碼是長這個樣子的:
action = new QAction("馬賽克", NULL);
menu->addAction(action);
connect(action, &QAction::triggered, this, &kaleido_painter::showSecondary_Window);
它可以呼叫showSecondary_Window函數,但是不能傳入任何參數。
怎麼辦呢?
只要把connect函數改成下方的格式就可以了:
connect(action, &QAction::triggered, this, [=]() {
kaleido_painter::showSecondary_Window(mosaic_Window);
});
這樣就能同時呼叫showSecondary_Window函數又能傳mosaic_Window的參數進去。
標題:"亞型"在醫學上代表什麼意思?
在一些維基百科的醫學相關條目中,有時會看見"亞型"這個詞彙,像是Omicron是亞型病毒株、HIV-2是HIV病毒的亞型、亞斯伯格症是自閉症的亞型、費爾蒂綜合症被認為是類風濕關節炎的亞型,等等...
因為亞型這個詞彙比較少出現,所以我到近日才稍微搞懂亞型的意思。
簡單來說亞型就是一種東西的不同類型,像是A疾病的亞型跟A疾病是同一種疾病,但是又有分別,為了區分,就稱作是A疾病的亞型。
標題:「Google屢次停止運作」的臨時解決方法
今天手機打開來發現,手機一直跳出訊息:
「Google屢次停止運作」
這邊提供一個暫時性的解決方式。
首先,點選設定,按應用程式與通知。
按應用程式資訊。
找到Google的選項。
看到恢復原廠的通知,就按取消。
然後,「Google屢次停止運作」就暫時不會出現了。
接下來,就先慢慢等Google的更新修好它吧。
等Google修好後再啟用Google,就能繼續使用Google的服務。
標題:使用Word內建功能將pdf轉成word檔
本篇文章網址:https://corettainformation.blogspot.com/2021/06/wordpdfword.html
今天要使用Word的內建功能來將pdf檔案轉成Word檔案。
首先,打開Word,然後將pdf檔案拖曳進Word視窗裡面。
然後按確定。
按完確定之後,該pdf檔案就可以被轉成Word檔案了。
不需要使用線上服務、也不需要其他別人開發的軟體就能完成。
標題:使用JavaScript將相對路徑轉為絕對路徑。
小標題:使用JavaScript將相對路徑轉為絕對路徑。
本篇文章網址:https://corettainformation.blogspot.com/2021/06/js.html
今天要使用JavaScript將相對路徑轉為絕對路徑。
方法如下
首先,使用JavaScript建立A物件:
var A=document.createElement("A");
上述程式碼相當於建立HTML的<a></a>
然後將它的href指向相對路徑:
A.href="./image/anime/warrior/warrior-145597_1280_edit_small.png";
然後再將它的網址log出來:
console.log(A.href);
標題:[教學]如何在QT中顯示中文
或 [教學]如何在QT中解決中文亂碼問題
本篇文章網址:https://corettainformation.blogspot.com/2021/05/qt.html
直接進入正題吧,今天,我在QMenu上顯示「檔案」兩個字。
但是卻出現亂碼(如下圖所示)
#ifdef WIN32
#pragma execution_character_set("utf-8")
#endif
加入完後,重新編譯程式。
「檔案」兩個字就被顯示出來了。