發表文章

8-Bit Plane Slicing 位元平面分割 詳細解說 # 附 Python 程式碼

圖片
[影像處理 Image Processing] 8-Bit Plane Slicing 位元平面分割 詳細解說 # 附 Python 程式碼 觀念解說︰ 8-bit plane slicing 主要作用於進行影像處理時,在影像中 切割出高頻與低頻的資訊 。 可以參考這張圖片幫助理解 8-bit plane slicing 分割抽像圖 如上圖所示,你可以想像,在一張灰階(8-bits)圖片的每一個像素pixel將被分層切割(0-7層), 總共8層 ,像漢堡一樣,這就是 8-bit plane slicing 。 在一張 灰階圖片 ,其像素值範圍是 0 - 255 ,分別用於表達不同的深淺灰度,而圖片中每一個像素點(pixel),都會有一個像素值(pixel value)。這一章將會以灰階圖片作為示例。 像素點、像素值的解釋,可以參考這篇文章。 其實圖片在數值處理上,就像一張 網格 , 網格裡每一個格子都有不同的數值,代表著不同的顏色 。(RGB色彩圖示則用了三層的網格去表示,每一格由 RED, GREEN, BLUE 三種顏色組成) 計算方法︰ 8-bit plane slicing 其實就是將每一個像素值(pixel value)的二進制值,以其每個位數 (2 0 - 2 7 ) 進行過濾。 假設以下表格是一張 灰階圖片 的像素值(數值範圍0-255)︰ 217 97 85 21 219 115 177 204 104 e.g. 網格裡每一個格子都有不同的數值,代表著不同的顏色。(如上所示) ( 0 - 255) 1. 首先我們可以將灰階圖片裡的所有像素值 (範圍︰0 - 255) 轉為2進制表達。 十進制 二進制 0 0000 0000 1 0000 0001 2 0000 0010 3 0000 0011 ...... ...... 127 0111 1111 ...... ...... 255 1111 1111 2. 然後我們將圖片裡的每一格像素(pixel),抽取其二進制值每個位數的值,成為Bit-plane。我將會以下方像素值為例︰ 217 97 85 21 219 115 177 204 104 像素...

斷裂的道統與迷失的孤島:香港精神困境與發展失落的歷史剖析

斷裂的道統與迷失的孤島:香港精神困境與發展失落的歷史剖析 香港,這座曾在南海之濱熠熠生輝的城市,如今正面臨著深層的精神與文化危機。從殖民地的歷史陰影到被中共吞併後的政治風波,香港人似乎在歷史的夾縫中失去了主體性。要理解今日香港的經濟單一、文化真空與政治激進,必須回到其歷史與文化斷層的根源,並審視其缺乏中華民國正統領導下的發展損失。 一、 歷史的斷層、國家觀念的淡薄與民國的無力 香港自脫離英國殖民統治並被中共吞併以來,歷史的巨變並未自動帶來身份認同的覺醒。由於長期的華洋分治與殖民教育,香港人與源自辛亥革命、承載中華正統的中華民國流派產生了嚴重的歷史斷層。 在歷史事實上,香港曾是革命基地,興中會總會便設於香港,早期華人社會與民國道統有著極深的血脈聯繫。然而,國共內戰後,中華民國政府因國際局勢(如1971年退出聯合國)與兩岸長期對峙的地緣政治局限,在外交與軍事力量上顯得無力且鞭長莫及,無法有效地向香港社會傳播與延續正統充的中華文化與憲政思維。 隨著國民政府遷台,以及後來港英政府對親台勢力的壓制(如逐步清理具有民國色彩的調景嶺寮屋區),這種外在正統力量的缺位,導致香港本土社會徹底失去了接觸民主憲政中華民國的機會。當國家觀念僅被等同於對單一專制政權的服從,而非對歷史道統與民族命運的認同,香港人的國家觀念自然走向薄弱與迷茫。 二、 積極不干預的功利治理與建國精神的集體缺位 長達百年的英殖時期,港英政府採取了著名的「積極不干預」(Positive Non-interventionism)治理政策。這一政策背後有著極為現實的政治動機與歷史成因: 工具性與權宜性的殖民本質 :香港在英國全球戰略中,本質上只是一個貿易轉口港與經濟橋頭堡。英國小說家韓素音曾形容香港是「借來的時間,借來的地方」。歷史事實證明,倫敦當局深知這塊土地隨時可能面臨地緣政治變數(特別是新界租約於1997年屆滿),因此不願為其投入龐大的財政補貼或規劃長遠的「國家建設」藍圖。政府將自身職能限縮於維持治安、基礎設施與普通法法治,這種「小政府」模式能以最低的統治成本,榨取最大的經濟效益。 導向功利主義的原因 :在這種政策導向下,港英政府刻意將香港塑造成一個「只有經濟,沒有政治」的非政治化社會。在1970年代以前,政府不提供完善的社會福利安全網與勞工保障,迫使基層市民必須將所有精力投入個人的...

Power Automate - Send an email notification when a SharePoint list item or file is approved (Support multiple approvers)

圖片
Overall First, you need to enable "Approvals" in your SharePoint. Next, click "Add Column" to configure the new columns to show on your site. Enable Approval status, Approvers, Responses, and Approval Creator. Power Automate Flows: 1. SharePoint::When an item or a file is modified     - Site Address: select your site address (What is your folder location?)     - List or Library Name: (Option, if your site has a library or another tag) 2. Variable::Initialize variable  The variable is only for debugging purposes and allows you to check the output; you can skip it. -Name: ApproversEmails -Type: Array -Value: 3. Control::Apply to each (If Power Automate automatically produces some additional information for each block, you can remove it directly.) -Name: For each  -Select an output from previous steps: "Approvers" of "SharePoint::When an item or a file is modified" Get folder metadata can skip. 4. SharePoint::Get file metadata     -Site Address: sam...

如何將 Telegram 接入 OpenClaw - 學習如何建立 Telegram Bot 並將其與 OpenClaw 整合

前言 OpenClaw 是一個強大的自動化平台,它支援多種渠道,包括 Telegram。透過接入 Telegram,您可以方便地與 OpenClaw 互動,以通知您任務狀態或直接控制自動化流程。 步驟 1:建立 Telegram Bot 要讓 OpenClaw 連接 Telegram,您需要一個 Telegram Bot。請按照以下步驟操作: 開啟 Telegram App,搜尋 @BotFather 並點擊進入對話。 輸入命令 /newbot ,然後按照指示為新的 Bot 指定名稱和用戶名: 名稱: 例如「OpenClaw Assistant」 用戶名: 需要以 _bot 作為結尾,例如「openclaw_assistant_bot」 完成後,您將收到一組唯一的 API Token ,格式類似於: 123456789:ABCDEF... 步驟 2:將 Token 添加至 OpenClaw 以下是完整的操作指南,幫助您將 Telegram Bot 的 Token 配置到 OpenClaw。 2.1 確定 OpenClaw 的工作區路徑 預設情況下,OpenClaw 的工作區位於伺服器上的 ~/.openclaw/workspace 。使用 SSH 登入伺服器後,執行以下指令檢查: ssh -i "test-webserver-apeast1.pem" ec2-user@ cd ~/.openclaw/workspace ls 確保能看到名為 config 的配置文件。 ...

OpenClaw安裝 [AWS]

圖片
🚀 OpenClaw 安裝指南 - AWS EC2 💡 快速安裝提示: 在最新版的 OpenClaw 官網中,使用以下指令已經可以自動安裝 Node.js: curl -fsSL https://openclaw.ai/install.sh | bash 你也可以跟隨以下步驟了解一下套件和原理。 📋 準備工作 在 Linux VM 上準備 Node.js, brew 和 git 一個 Amazon Linux EC2 instance 🔧 安裝步驟詳解 1 安裝 Git OpenClaw 需要 Node.js,我們需要用到 brew 去安裝,而安裝 brew 又需要先安裝 git。 Brew 和 yum 都是一些軟件工具包,協助管理和安裝 linux 的工作環境,有興趣自己可以去了解下。 所以我們需要先在 VM 上安裝 git, git 傳送門 📦 安裝指令 sudo yum install git-all 2 安裝 Homebrew 安裝完成後,安裝 Brew: curl -o- https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash ⚠️ 重要提醒: 安裝成功後,別忘了看這段文字,它需要我們自行設定環境變數 (PATH),否則輸入 brew 時,cmd 會無法辨識 "brew" 指令。 🔧 設定環境變數 echo '' >> /home/ssm-user/.bashrc echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)"' >> /home/ssm-user/.bashrc eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)" 設定完成後,試著輸入 brew ,如果不是跳出 command not f...

TIBC Spotfire SSL 證書安裝 / HTTPS 設定

圖片
TIBCO Spotfire SSL 證書安裝 / HTTPS 設定 TIBCO Spotfire SSL 證書安裝 / HTTPS 設定 大家好,我是 Jayson Chan 。在企業內部部署 TIBCO Spotfire Server 時,啟用 HTTPS 加密連線是常見的安全性要求。這篇文章將分享我實際處理一張 PFX 格式 SSL 證書的經驗,並點出最容易忽略的細節—— keystore 的 alias 。希望透過真實案例與圖文說明,幫助你順利完成 Spotfire 的 HTTPS 設定。 一、SSL 證書的常見格式 在開始之前,先認識一下 SSL 證書的各種檔案格式,因為接下來的操作會用到這些概念。以下是常見的檔案後綴及其說明: 檔案後綴 檔案類型 說明 *.DER 或 *.CER 二進制格式 只含有證書資訊,不包含私鑰。 *.CRT 二進制格式或文本格式 只含有證書資訊,不包含私鑰。 *.PEM 文本格式 一般存放證書或私鑰,或同時包含證書和私鑰。*.PEM 如果只包含私鑰,通常會用 *.KEY 作為檔名。 *.PFX 或 *.P12 二進制格式 同時包含證書和私鑰,且通常有密碼保護。這是 Windows 環境常見的交換格式。 ...

PL/SQL Cursor 解析 : Oracle Store Procedure & Cursor

PL/SQL 游標深入解析:從基礎到作用域 PL/SQL 游標深入解析:從基礎到作用域,一篇文章帶你徹底搞懂 大家好,我是Jayson。今天我們來聊聊 PL/SQL 中一個非常基礎但至關重要的概念—— 游標(Cursor) 。無論你是剛接觸 Oracle 資料庫的萌新,還是已經寫過幾年 SQL 的老手,游標都是繞不開的話題。尤其是游標的 作用範圍(Scope) ,很多人在實際開發中容易踩坑。 先來看一段簡單的範例程式碼: CREATE OR REPLACE PROCEDURE TESTING AS F_DATE VARCHAR2(10); CURSOR Hello_Cursor IS SELECT A FROM <your table> WHERE A = 'ABC'; BEGIN OPEN Hello_Cursor; FETCH Hello_Cursor INTO F_DATE; DBMS_OUTPUT.PUT_LINE(F_DATE); CLOSE Hello_Cursor; END; 這段程式碼看起來很簡單,但它背後隱藏著游標使用的完整流程。接下來我們就從這段程式碼出發,逐步拆解游標的方方面面,最後深入討論游標的 作用範圍 。 一、什麼是游標? 簡單來說, 游標是 PL/SQL 中用於處理 SQL 查詢結果集的一種機制 。當你執行一個 SELECT 語句,回傳的結果可能包含多行資料,而 PL/SQL 是面向單行處理的,這時候就需要游標來逐行讀取資料。 游標分為兩類: 隱式游標(Implicit Cursor) :由 PL/SQL 自動管理,用於單行查詢或 DML 操作。 顯式游標(Explicit Cursor) :由程式設計師顯式定義,用於處理多行結果集。 今天我們重點講解 顯式游標 ,因為它是我們手動控制的核心。 二、顯式游標的四步曲 使用顯式游標通常需要四個步驟: 宣告游標(Declare) :定義游標名稱和對應的 SELECT 語句。...

Oracle 分析函數:ROW_NUMBER() 與 RANK() 指南

Oracle 分析函數:ROW_NUMBER() 與 RANK() 指南 Oracle 分析函數:ROW_NUMBER() 與 RANK() 完全指南 大家好,我是Jayson。在上一篇我們聊了 PL/SQL 游標,今天我們要進入 SQL 分析函數的世界,專注於兩個超級實用的工具: ROW_NUMBER() 和 RANK() 。這兩個函數搭配 PARTITION BY 和 ORDER BY ,可以輕鬆完成「分組排序」、「取各組最大/最小值記錄」等複雜任務,是資料分析與報表製作的必備技能。 一、什麼是分析函數? 分析函數(Analytic Functions),也稱為視窗函數(Window Functions),允許我們在不改變查詢結果列數的情況下,對每一行計算一個基於某個視窗範圍的聚合值或排序值。簡單說,就是可以在每一行的旁邊加上排名、累計總和、移動平均等資訊。 ROW_NUMBER() 和 RANK() 是最常用的兩種排名函數。 二、ROW_NUMBER() 基本語法與用法 ROW_NUMBER() 會為查詢結果集中的每一行指派一個唯一的序號,序號從 1 開始,按照 ORDER BY 指定的順序遞增。如果搭配 PARTITION BY ,則會在每個分區內獨立編號。 基本語法: ROW_NUMBER() OVER ( [PARTITION BY 分欄位1, 分欄位2, ...] ORDER BY 排序欄位1 [ASC|DESC], 排序欄位2 ... ) 範例 1:簡單的 ROW_NUMBER() SELECT A, B, C, ROW_NUMBER() OVER (ORDER BY B) AS row_num FROM Table_ABC; 這個查詢會將 Table_ABC 的資料依照 B 欄位排序,然後從 1 開始依序給每一行一個編號。注意,這裡沒有 PARTITION BY ,所以整個結果集視為一個大區塊。 範例 2:使用 PARTITION BY 的分組編號 SELECT A, B, C, ROW_NUMBER() OV...