2019年5月27日 星期一

Adobe Reader 開啟時自動隱藏右邊搜索工具列

Adobe Reader 開啟時自動隱藏右邊搜索工具列

到設定裡面更改這個設置
然後再把右邊的小框框關閉,下次開起的時候就會維持關閉狀態了。

2019年5月3日 星期五

[圖文] Python-OpenCV 4.1.0 安裝配置在 Visual Studio 2019

[圖文] Python-OpenCV 4.1.0 安裝配置在 Visual Studio 2019

如果是配置自己環境上的Python可以參考這篇
https://charlottehong.blogspot.com/2015/08/windows-install-opencv-for-python.html

這篇會從頭開始講~包含怎麼布置python的執行環境。
Visual Studio 2019已經做得相當完備了,功能也簡化了,不再是以前2017與2015版本很多功能可能不是很好使,這會是我優先推薦的編譯器。
唯一的缺陷就是太肥了吧,不過這在VS19也有很大的改善,整理效能損耗減少非常之多,詳細可以搜尋相關文章,至少記憶體需求減少了非常之多,這次微軟真的是猛起來想把VS19做好了。
事前不需要到 Python 官方下載安裝,VS19會自己有自己的Python。如果已經安裝了預設也是使用內建的,但是可以選用自己安裝的Python。

布置環境

首先打開他的環境配置,可以直接在開始搜尋 Visual Studio Installer 這個就可以找到並打開了。
然後按下變更
把這個勾起來就可以使用了,勾好之後右下角的變更按下去就會開始安裝了

運行代碼

然後開打VS,選擇建立新專案
建立之後選擇Python
名稱可以自由修改我這邊是打 OpenCV_Test 打好之後就建立吧
紫色框框的部分是可以自由選擇版本的,這裡的環境是VS自己內建的不是你系統上自己安裝的。
那個下拉選單點擊之後可以新增環境,如果需要用自己系統上安裝的環境,可以手動新增進去然後就可以使用了。
測試可以先隨意打幾行代碼
# -*- coding: utf-8 -*-
print('Test')
然後按下F5就可以執行了

安裝Python套件

點擊python旁邊禮物形狀的按鈕,可以打開套件管理介面。
然後搜尋 opencv-python 安裝 opencv-contrib-python 這個版本,
[1] 左上角看到我有兩個版本 Python2.7 與 Python3.7,這邊2.7版是我自己到官方下載安裝的,內建只會有 Python3.7版)
[2] contrib會多安裝那些在商業上需要付費,但是個人使用免費的函式庫。如果沒用到,安裝最下面那個不帶contrib字樣也是可以使用。
[3] 我有發現VS19安裝好python就自帶numpy了,如果沒有這個要自己安裝。跟上面安裝方法一樣,在套件管理處搜尋 numpy 安裝就可以了。
然後會跳出來說要提高權限,按第一個提高即可。
安裝完畢就貼上測試的代碼試試看
# -*- coding: utf-8 -*-
import cv2
import numpy as np

#  畫布大小
img = np.zeros((720,1280,3), np.uint8)
# (位置),大小,(顏色)粗度
cv2.circle(img,(200,200), 100, (0,0,255), 2)
# (第一個座標)(第二個座標)(顏色),粗度
cv2.rectangle(img,(350,100),(550,300),(0,255,0),3)
# (第一個座標)(第二個座標)(顏色),粗度
cv2.line(img,(600,100),(800,300),(255,0,0),10)

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))

font = cv2.FONT_HERSHEY_SIMPLEX
# (座標),大小,(顏色),粗度
cv2.putText(img,'Charlotte.HonG',(0,500), font, 5,(255,255,255),10)

while(1):
    cv2.imshow('Dring',img)
    if cv2.waitKey(20) & 0xFF == 27:
        break
cv2.destroyAllWindows()
直接執行吧~
恭喜完成瞜~

2019年4月30日 星期二

打開 word 跳出 the resource dll cannot be loaded

打開 word 跳出 the resource dll cannot be loaded

最近一打開 word 跳出 the resource dll cannot be loaded,不知道怎麼樣突然跳出這樣的警告,選項內有看到日文,猜測可能跟我電腦有改過日文語言有關,紀錄一下解決辦法。
先到選項內,找到增益集,然後依照圖中所選
再來把這個項目取消打勾就好

2019年4月22日 星期一

Google Chrome 如何安裝第三方擴充插件

Google Chrome 如何安裝第三方擴充插件

某些插件被下架之後會看到「這個擴充功能未列在 Chrome 線上應用程式商店」就無法使用了,預設是封鎖的要特別安裝白名單群組原則才能使用。


會發這篇主要是我在用的一個擴充軟件過期被下架了。網路上有給出解法但是關鍵的 chrome.adm 檔案不知道從哪裡來的怕怕的不敢隨意下載,這邊會給出官方的載點,直接到google官方下載最安全。附註,我最後是安裝成功了,可是卻出現錯誤不能打開….
最後的解決辦法可以參考這篇 https://charlottehong.blogspot.com/2019/06/chrome.html

本機群組原則

這個功能要專業版才有,如果不專業版的可以蒐一下網路上的資源,有人從專業版複製出來,手動安裝進去就可以使用了。
篇幅有點長~有空再做這部分教學文章了
在開始前先到官方下載管理範本
https://cloud.google.com/chrome-enterprise/browser/download/?hl=zh-TW

這邊備份一下我自己上傳的版本(20220110)
https://gist.github.com/hunandy14/6d468318ec2fa34c3d3deedd933bb066

在這個地方可以載到
檔案的位置在解壓縮之後的
# 舊版
policy_templates.zip\windows\adm\zh-TW\chrome.adm

# 新版
GoogleChromeEnterpriseBundle64.zip\Configuration\adm\zh-TW\chrome.adm
關鍵在於 chrome.adm 這一份檔案,拿到就可以繼續下一步了
讓我們開始吧

打開你的開始,直接打字搜尋 gpedit.msc 就可以看到了,打開他會看到這個畫面
然後對著系統管理範本按右鍵,點選新增移除範本
選擇 chrome.adm 新增
然後回到chrome上的擴充程式上,可以看到每一個程式都有ID
把你無法安裝被阻擋的擴充程式ID先把它複製下來
然後找到 擴充功能許可清單 點擊兩下開啟
新增擴充程式的ID
然後按下確定輸入即可完成~

2019年2月27日 星期三

C++ function point 用法範例

C++ function point 用法範例

範例代碼1
/*****************************************************************
Name : 
Date : 2017/02/23
By   : CharlotteHonG
Final: 2017/02/23
*****************************************************************/
#include <iostream>
using namespace std;

int add(int & a, int & b){
    return a+b;
}
int sub(int & a, int & b){
    return a-b;
}
/*==============================================================*/
int main(int argc, char const *argv[]){
    // int (*ptr[2])(int &, int &){add, sub};

    // decltype(add)* ptr[2]={add, sub};

    // typedef int (fp)(int &, int &);
    // fp* ptr[2]{add, sub};

    // typedef int (*fp)(int &, int &);
    // fp ptr[2]{add, sub};

    // using fp = int(*)(int &, int &);
    // fp ptr[2]{add, sub};

    using fp = int(int &, int &);
    fp* ptr[2]{add, sub};

    int a=1, b=3;
    cout << "ptr[0](a, b)=" << ptr[0](a, b) << endl;
    cout << "ptr[0](a, b)=" << ptr[1](a, b) << endl;
    return 0;
}
/*==============================================================*/
範例代碼2
/*****************************************************************
Name : 
Date : 2017/04/04
By   : CharlotteHonG
Final: 2017/04/04
*****************************************************************/
#include <iostream>
using namespace std;

int add(int a, int b){
    return a+b;
}
int sub(int a, int b){
    return a-b;
}

// 為宣告建立別名
// typedef int (*p)(int, int);
// using p = int (*)(int, int);

// 搭配 decltype
// typedef decltype(add) *p;
using p = decltype(add);

// 使用 p 宣告
int fun(int a, int b, p fun_point){
    return (*fun_point)(a, b);
}
// 直接使用
int fun2(int a, int b, decltype(add) fun){
    return (*fun)(a, b);
}
//================================================================
int main(int argc, char const *argv[]){
    cout << fun(2, 3, &add) << endl;
    cout << fun(2, 3, &sub) << endl;

    // 主程式取別名
    auto p=add;
    cout << fun2(2, 3, p) << endl;

    return 0;
}
//================================================================

更改 google 首頁背景照片

更改 google 首頁背景照片

裝好長這個樣子
右下角的+可以新增圖片
按+之後裡面的選項可以隱藏一些元素

2019年2月24日 星期日

[圖文] OpenCV 4 安裝配置在 Visual Studio 2019

[圖文] OpenCV 4.0.1 安裝配置在 Visual Studio 2019


2024-02-04
1. 新版的 Visual Studio 2022 + OpenCV490 可以參考新文章https://charlottehong.blogspot.com/2024/02/opencv-490-win11-visual-studio-2022.html


軟體下載

先到官方下載這兩項軟體 (點擊有連結)

  1. OpenCV401:https://sourceforge.net/projects/opencvlibrary/files/4.0.1/opencv-4.0.1-vc14_vc15.exe/download
    (我是故意放帶版本號連結的,這樣下面教學才能直接貼上不用改版本號。)

本文範例opencv載官方的這個

並直接安裝到C曹

這邊建議跟著我做,因為路徑如果改了,本篇教程很多部分也要跟著改
一般都是看著教程複製貼上這做,到時候很容易漏掉沒改到…

  1. Visual Studio 2019

關於 Visual Studio 如何安裝可以參考
https://charlottehong.blogspot.com/2018/09/c-visual-studio-2017.html

文件說明

build 是待會要用到的文件,全部都在裡面

這個位置是要設置在環境變數的(專給VS用的)
C:\opencv\build\x64\vc15\bin

這個位置給 C++ 引入標頭檔的
C:\opencv\build\include

這個位置專給 VS 引入lib檔的
C:\opencv\build\x64\vc15\lib

以上如果是 VS2015 就是找vc14

部屬OpenCV

環境變數

這是一次性的工作,設置好環境變數,這台電腦以後就不用再設置了。

對著左下角的開始按右鍵,打開管理員模式的 powershell。

如果是使用 win7 的用戶

  • 用管理員打開cmd,然後在cmd內輸入 powershell 就可打開
    (非SP1版本可能沒有…參考文中置頂的舊文設置)

輸入下面指令 (連點三下直接全選)

[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:\opencv\build\x64\vc15\bin", "Machine")

輸入之後不會有什麼提示,想要確定是否成功可以輸入

[environment]::GetEnvironmentVariable("PATH", "Machine")

查詢目前環境變數是否有輸入

檢查的話複製紅框部分,然後打開資料夾貼上路徑欄並打開,檢查看看是不是真的有東西。

  • 噴這個錯誤 LNK1104 無法開啟檔案 'opencv_world401d.lib',也是回來檢查紅框路徑。
  • 記得VS在此之前不要打開歐,如果已經先打開了,這邊做完後關閉重新啟動VS就好了。
  • 終端機要用管理權限開啟,不然那行指令會沒作用。




VS2019設定

讓我們先建立新專案吧

直接選擇空白專案

這邊隨意打一個名稱就可以下一步了

創建好專案再來就設置opencv吧~先新增屬性表

這張圖多看幾眼,右鍵的位置點錯就錯了…

然後新增名稱 opencv401d.props 這邊不要自己改,照著打稍後會說明

好了之後會出現在這個位置,點他兩下

加入 include 路徑 和 lib 路徑

include目錄的最前面加上 C:\opencv\build\include;
函式庫目錄最前面加上 C:\opencv\build\x64\vc15\lib;
(他原本是有東西的,原本的東西要留著中間用分號隔開)

加入 lib 檔案

這邊點那個小三角,在按編輯

然後輸入 opencv_world401d.lib

這邊補充說明一下 opencv_world401d.lib 中的 401 是 opencv 的版本 4.0.1版本,如果下載的是別的版本,記得要自己修正。




測試代碼

現在讓我們新增一份新的程式碼

直接就預設名稱下一步吧

接下來輸入測試程序

/**********************************************************
Name :
Date : 2016/05/29
By   : CharlotteHonG
Final: 2016/05/29
**********************************************************/
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char const* argv[]) {
 /* 畫布 */
 Mat img(270, 720, CV_8UC3, Scalar(56, 50, 38));
 /* 直線 */
 line(img, Point(20, 40), Point(120, 140), Scalar(255, 0, 0), 3);
 /* 實心方塊 */
 rectangle(img, Point(150, 40), Point(250, 140), Scalar(0, 0, 255), -1);
 /* 實心圓 */
 circle(img, Point(330, 90), 50, Scalar(0, 255, 0), -1);
 /* 空心橢圓 */
 ellipse(img, Point(460, 90), Size(60, 40), 45, 0, 360, Scalar(255, 255, 0), 2);
 /* 不規則圖形 */
 Point points[1][5];
 int x = 40, y = 540;
 points[0][0] = Point(0 + y, 50 + x);
 points[0][1] = Point(40 + y, 0 + x);
 points[0][2] = Point(110 + y, 35 + x);
 points[0][3] = Point(74 + y, 76 + x);
 points[0][4] = Point(28 + y, 96 + x);
 const Point * ppt[1] = { points[0] };
 int npt[] = { 5 };
 polylines(img, ppt, npt, 1, 1, Scalar(0, 255, 255), 3);
 /* 繪出文字 */
 putText(img, "Test Passed !!", Point(10, 230), 0, 3, Scalar(255, 170, 130), 3);
 /* 開啟畫布 */
 namedWindow("OpenCV Test By:Charlotte.HonG", WINDOW_AUTOSIZE);
 imshow("OpenCV Test By:Charlotte.HonG", img);
 waitKey(0);
 return 0;
}

像這個樣子

記得確認一下上方是不是 debug/x64 模式,因為剛剛只有設置這個模式。

然後就按F5測試吧

恭喜完成 opencv 的設置~到這邊就已經設置完畢。

練習

趁著現在記憶猶新,趕快來練習,現在就試著設置 relese 模式吧~
目前是設置 debug/x64 模式,如果要設置 release 模式,最初一開始的時候屬性表要加在 release | x64 裡面。

而在 release 最後面加入lib的時候要使用沒有 d 結尾的 `opencv_world401.lib,才是正確的檔案,這邊設置錯誤會無法編譯。

設置完畢代碼不需要更動,編譯的時候VS上方從 debug/x64 模式更改為 release/x64 模式即可~

至於 x86 模式因為 官方給的檔案並沒有幫你預先編譯好,就沒辦法做了,想要使用x86模式需要自己重新編一,詳細可以參考這邊站內文章重新編譯。
https://charlottehong.blogspot.com/2017/07/opencv-320-contrib-visual-studio.html


重複使用

現在已經設置完畢了,並且你會發現,在你的專案目錄會有一個 opencv401d.props
剛剛要你不要更改就是因為連同版本號一起打上來,這樣比較好識別。

這個把他複製出來存好,他是可以重複使用的
下次開別的新專案直接新增進來就好,完全不用再設置opencv。

使用方式像這樣,加入這個屬性表

需要注意的是屬性表建議是複製一份到專案內,然後才按上圖紅框的加入現有屬性表!而不是打開A專案,然後瀏覽到B專案的位置,加入B專案的屬性表,
這是為了確保A專案的獨立性,不這樣做哪天B專案砍掉了,或是B專案有變動到時候A會跟著壞掉…



最後

有什麼問題可以在下方留言發問喔。

最後如果還是不行的話可以參考我幫你設置好的專案,載下來打開就可以用瞜。
(裡面有設置好的 debug/rekease 屬性表,你也可以載下來直接複製過去用。)
https://github.com/hunandy14/CHG_OpenCV_test/tree/OpenCV-4.0.1

覺得本篇教學章寫的很清楚,很有幫助的話,不妨留個言讓我知道吧~
最重要的是,分享給你的朋友們,讓他們一起來學習opencv吧~
短網址幫你設置好了

http://bit.ly/2U0DEiQ [圖文] OpenCV 4.0.1 安裝配置在 Visual Studio 2019



其他關連文章

最新 OpenCV 4.5.1 文章可以參考這邊,用另一種方式配置只要搞一次就好,往後開新專案都是直接用,完全不需要設置(有懶人包一鍵配置)

https://charlottehong.blogspot.com/2021/01/opencv-451-visual-studio-2019.html

舊版的 Visual Studio 2017 可以參考這篇https://charlottehong.blogspot.com/2017/06/opencv-320-vc14-visual-studio-2017.html