發表文章

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 像素值(十進制表示) ...

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...

T-SQL 與 SSMS:深入剖析 SQL Server 預存程序中的 While 迴圈游標

T-SQL 與 SSMS:深入剖析 SQL Server 預存程序中的 While 迴圈游標 T-SQL 與 SSMS:深入剖析 SQL Server 預存程序中的 While 迴圈游標 大家好,我是 Jayson Chan 。在處理 T‑SQL 邏輯時,我們偶爾會遇到需要逐行處理資料的情況,這時許多人第一個想到的就是「游標」(Cursor)。雖然 SQL Server 的強項是「集合導向」(Set‑based)操作,但有時候(例如呼叫外部 API、複雜的商業邏輯,或來源是連結伺服器的資料)游標仍是必要的工具。今天我們就透過一個實際的預存程序範例,深入探討如何在 SSMS 中使用 WHILE 迴圈搭配游標,並點出其中的細節與陷阱。 一、範例程式碼一覽 以下是讀者提供的預存程序,功能是從 Oracle 連結伺服器抓取資料,然後逐筆印出並呼叫另一個程序: CREATE PROCEDURE [dbo].[SP_ABC] AS BEGIN DECLARE @F_DATE VARCHAR(10) DECLARE @T_DATE VARCHAR(10) DECLARE Hello_Cursor CURSOR FOR SELECT A, B FROM OPENQUERY(Oracle_SF, 'SELECT * FROM ABC') OPEN Hello_Cursor FETCH NEXT FROM Hello_Cursor INTO @F_DATE, @T_DATE WHILE @@FETCH_STATUS = 0 BEGIN PRINT(@F_DATE + ' | ' + @T_DATE) EXECUTE('Call your Procedure') -- 假設這裡是動態呼叫其他程序 FETCH NEXT FROM Hello_Cursor INTO @F_DATE, @T_DATE END CLOSE Hello_Cursor DEALLOCATE Hello_Cu...

T-SQL 與 SSMS:透過 Linked Server 從 SQL Server 呼叫 Oracle Procedure

T-SQL 與 SSMS:透過 Linked Server 從 SQL Server 呼叫 Oracle 預存程序 T-SQL 與 SSMS:透過 Linked Server 從 SQL Server 呼叫 Oracle 預存程序 大家好,我是 Jayson Chan 。在跨資料庫平台的環境中,我們時常需要從 SQL Server 去執行 Oracle 資料庫上的預存程序。SQL Server 的「連結伺服器」(Linked Server)功能讓我們可以無縫地存取 Oracle 的資料表、檢視,甚至直接呼叫 Oracle 的預存程序。今天我們就來探討如何使用 EXECUTE ... AT 語法,在 T‑SQL 中呼叫遠端 Oracle 的預存程序,並提供完整的範例與注意事項。 一、為什麼需要從 SQL Server 呼叫 Oracle 預存程序? 在企業環境中,資料常分散在不同的資料庫平台。例如前端應用程式使用 SQL Server,但某些核心商業邏輯寫在 Oracle 的預存程序中。若要在 SQL Server 中觸發這些邏輯,傳統做法是透過連結伺服器直接操作 Oracle 資料表,但若需要執行已封裝好的預存程序,就必須使用分散式查詢或 EXECUTE AT 指令。 二、什麼是 Linked Server? Linked Server 是 SQL Server 的一種設定,讓 SQL Server 能夠對其他 OLE DB 資料來源執行命令。設定完成後,我們可以在 T‑SQL 中使用四部分名稱( [伺服器].[資料庫].[結構描述].[物件] )存取遠端物件,或是使用 OPENQUERY 、 EXECUTE AT 執行傳遞查詢或命令。 如何查看現有的 Linked Server? 在 SQL Server Management Studio (SSMS) 中,展開「物件總管」→ 你的 SQL Server 執行個體 → 「伺服器物件」→ 「連結伺服器」資料夾,即可看到所有已設定的連結伺服器。如下圖概念: 物件總管 └─ 你的伺服器名稱 ├─ 資料庫 ├─ 安全性 ├─ 伺服器物件 │ ├─ 備份裝置 ...

[CSS]Jquery + CSS 翻頁特效 / 換頁特效

Jquery + CSS 翻頁特效 / 換頁特效 以下效果圖︰ Midland Realty Page 1 Page 2 Page 3 <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <title>Midland Realty</title> <style type="text/css"> body { margin: 0px; box-sizing: border-box; background-color: #FFFFFF; } #slideshow { width: 300px; height: 250px; background-color: sandybrown; position: relative; } .pageWrapper{ width: 100%; height: 100%; position: absolute; border: 2px solid red; } </style> <script src=...