matlab練習程序(RGB2HSL、HSL2RGB)

  色相飽和度亮度和三原色的相互轉換

function mainimg=imread('lena_color.jpg');img=mat2gray(img);  %任意區間映射到[0,1];[m n dim]=size(img);imshow(img);%%圖像的RGBR=img(:,:,1);G=img(:,:,2);B=img(:,:,3);%%圖像RGB2HSLH=zeros(m,n);   %色相角S=zeros(m,n);   %飽和度L=zeros(m,n);   %亮度for i=1:mfor j=1:nr=R(i,j);g=G(i,j);b=B(i,j);MAX=max([r,g,b]);MIN=min([r,g,b]);if MAX==MINH(i,j)=0;elseif MAX==r && g>=bH(i,j)=60*(g-b)/(MAX-MIN);elseif MAX==r && g<bH(i,j)=60*(g-b)/(MAX-MIN)+360;elseif MAX==gH(i,j)=60*(b-r)/(MAX-MIN)+120;elseif MAX==bH(i,j)=60*(r-g)/(MAX-MIN)+240;endL(i,j)=(MAX+MIN)/2;if L(i,j)==0 || MAX==MINS(i,j)=0;elseif 0<L(i,j) && L(i,j)<=0.5S(i,j)=(MAX-MIN)/(2*L(i,j));elseif L(i,j)>0.5S(i,j)=(MAX-MIN)/(2-2*L(i,j));endendendwa=waitbar(0,'wait');%%圖像HSL2RGBfor i=1:mfor j=1:ns=S(i,j);   l=L(i,j);         if s~=0h=H(i,j);      if l<0.5q=l*(1+s);elseq=l+s-(l*s);endp=2*l-q;hk=h/360;tR=hk+1/3;tG=hk;tB=hk-1/3;R(i,j)=foo(tR,p,q);G(i,j)=foo(tG,p,q);B(i,j)=foo(tB,p,q);elseR(i,j)=l;G(i,j)=l;B(i,j)=l;endendwaitbar(i/m);endclose(wa);function re=foo(t,p,q)if t<0t=t+1.0;elseif t>1t=t-1.0;endif t<1/6re=p+((q-p)*6*t);elseif 1/6<=t && t<0.5re=q;elseif 0.5<=t && t<2/3re=p+((q-p)*6*(2/3-t));elsere=p;endend    %%如果正反變換都沒錯的話,那么圖像是不變的img(:,:,1)=R;img(:,:,2)=G;img(:,:,3)=B;figure;imshow(img)end

參考:http://zh.wikipedia.org/wiki/HSV_%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4#.E4.BB.8E_HSV_.E5.88.B0_RGB_.E7.9A.84.E8.BD.AC.E6.8D.A2

轉載于:https://www.cnblogs.com/tiandsp/archive/2012/12/22/2829163.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387435.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387435.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387435.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2 文件處理、權限管理、搜索

文件處理命令&#xff1a; ls -a -l -d -h -i mkdir -p parents cd . .. /tmp/Japan pwd rmdir cp -r -p source destination 可改名recursive preserve mv source destination 剪切文件 改名 ctrl l 清屏 或者 clear命令 rm -r -f touch 新建文件 帶空格需加…

第38節: Vue3 鼠標按鈕修改器

在UniApp中使用Vue3框架時&#xff0c;你可以使用按鍵修飾符來更精確地處理鍵盤事件。以下是一個示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用.left、.right和.middle按鍵修飾符&#xff1a; <template> <view> <input keydown"handleKeyDown&…

Go語言學習之3 流程控制、函數

主要內容&#xff1a; 1. strings和strconv使用2. Go中的時間和日期類型3. 指針類型4. 流程控制5. 函數詳解 1. strings和strconv使用 //strings 1. strings.HasPrefix(s string, prefix string) bool&#xff1a;判斷字符串s是否以prefix開頭 。 2. strings.HasSuffix(s strin…

RabbitMQ教程總結

【譯】RabbitMQ教程一 主要通過Hello Word對RabbitMQ有初步認識 【譯】RabbitMQ教程二 工作隊列&#xff0c;即一個生產者對多個消費者循環分發、消息確認、消息持久、公平分發 【譯】RabbitMQ教程三 如何同一個消息同時發給多個消費者開始引入RabbitMQ消息模型中的重要概念路由…

3 幫助命令、用戶管理、壓縮

幫助命令&#xff1a; man 命令或配置文件 獲得幫助信息 /l 查看所有和l相關的行 q 退出 man passwd 1命令的幫助 5配置文件的幫助 man 1 passwd man 5 passwd 默認查看命令的幫助 man 5 passwd 查看配置文件的幫助 whatis 命令 查看命令的功能性描述 whatis ls ap…

[bzoj1039] [ZJOI2008]無序運動Movement

Description D博士對物理有著深入的研究&#xff0c;經典物理、天體物理、量子物理都有著以他的名字命名的定理。最近D博士著迷于研究粒子運動的無規則性。對圣經深信不疑的他相信&#xff0c;上帝創造的任何事物必然是有序的、有理可循的&#xff0c;而不是無規則的、混沌的。…

關于shiro session失效報錯問題

最近做了一個項目&#xff0c;要用到shiro&#xff0c;做完之后發現有個異常經常發生org.apache.shiro.session.UnknownSessionException: There is no session with id &#xff0c;經過多天的研究&#xff0c;終于得以解決 登錄的時候異常信息&#xff1a; [java] view plain…

4 網絡、掛載、關機

網絡命令: 給在線用戶發信 write 用戶名 編輯時&#xff0c;Ctrl退格鍵刪除錯誤輸入 CtrlD 保存輸入信息 wall 給所有在線用戶發信 ping命令 -c指定發送次數 ping -c 3 192.168.231.1 ifconfig 查看網卡信息 ifconfig eth1 192.168.231.100 臨時設置IP地址 mail 用戶名 …

#191 sea(動態規劃)

假設已經求出了i個點j個橋的連通圖數量f[i][j]&#xff0c;容易由此推出最終答案&#xff0c;套路地枚舉1號點所在連通塊大小即可。 假設已經求出了i個點的邊雙連通圖數量h[i]&#xff0c;考慮由此推出f[i][j]。可以枚舉其中一座橋將圖劃分成兩個部分&#xff0c;固定1號點在其…

linux下獲取占用CPU資源最多的10個進程,可以使用如下命令組合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下

linux下獲取占用CPU資源最多的10個進程&#xff0c;可以使用如下命令組合&#xff1a; ps aux|head -1;ps aux|grep -v PID|sort -rn -k 3|head linux下獲取占用內存資源最多的10個進程&#xff0c;可以使用如下命令組合&#xff1a; ps aux|head -1;ps aux|grep -v PID|s…

自定義注解與validation結合使用案例

案例1&#xff1a; [java] view plaincopy import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.validation.Constraint; import…

5 Vim編輯器的使用

vi filename 命令模式 a i o 插入模式 后前 行 Esc鍵 回到命令模式 Shift&#xff1a; 編輯模式 set nu加行號 執行完命令后直接回到命令模式 :set nu 設置行號 :set nonu 取消行號 移動命令&#xff1a; gg 到第一行 G 到最后一行 nG 到第n行 :n到第n行 $ 移至行…

機器學習實戰(筆記)------------KNN算法

1.KNN算法 KNN算法即K-臨近算法&#xff0c;采用測量不同特征值之間的距離的方法進行分類。 以二維情況舉例&#xff1a; 假設一條樣本含有兩個特征。將這兩種特征進行數值化&#xff0c;我們就可以假設這兩種特種分別為二維坐標系中的橫軸和縱軸&#xff0c;將一個樣本以點的形…

hive的安裝配置

hive只需安裝在一個節點上。 1、將安裝包解壓&#xff0c;cd入conf文件夾下&#xff0c;執行命令cp hive-default.xml hive-site.xml 2、更改hive-site.xml的配置項 </property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql:/…

Java注解Annotation 完成驗證

Java注解Annotation用起來很方便&#xff0c;也越來越流行&#xff0c;由于其簡單、簡練且易于使用等特點&#xff0c;很多開發工具都提供了注解功能&#xff0c;不好的地方就是代碼入侵比較嚴重&#xff0c;所以使用的時候要有一定的選擇性。 這篇文章將利用注解&#xff0c;來…

隱藏馬爾科夫模型HMM

概率圖模型 HMM 先從一個具體的例子入手,看看我們要解決的實際問題.例子引自wiki.https://en.wikipedia.org/wiki/Hidden_Markov_model Consider two friends, Alice and Bob, who live far apart from each other and who talk together daily over the telephone about what …

常用HQL

進入hive客戶端后&#xff1a; 1、建表&#xff1a; create table page_view(viewTime int, userid bigint,page_url string, referrer_url string,ip string comment IP Address of the User)comment This is the page view tablepartitioned by(dt string, country string)r…

阿里云天池 金融風控訓練營Task1 廣東工業站

Task1 賽題理解 一、學習知識點概要 本次學習先是介紹了賽題的背景和概況&#xff0c;題目以金融風控中的個人信貸為背景&#xff0c;給所給的47列特征中&#xff0c;根據貸款申請人的數據信息預測其是否有違約的可能&#xff0c;以此判斷是否通過貸款。隨后介紹了比賽中的評…

如何將.crt的ssl證書文件轉換成.pem格式

如何將.crt的ssl證書文件轉換成.pem格式摘自&#xff1a;https://www.landui.com/help/show-8127 2018-07-04 14:55:41 2158次 準備:有一臺安裝了php的linux操作系統執行下面的openssl命令即可&#xff1a;openssl x509 -in www.xx.com.crt -out www.xx.com.pem轉載于:https://…

SpringMVC學習記錄--Validator驗證分析

一.基于Validator接口的驗證. 首先創建User實例,并加入幾個屬性 ?12345678910111213141516171819202122232425262728293031323334<code class"hljs cs">public class User {private String username;private String password;private String nickname;public …