SQL Server查找特定字符串PATINDEX
語(yǔ)法與字符串的patindex一樣。
獲取文本指針TEXTPTRSQLServer在存儲(chǔ)文本類(lèi)型(ntext、text)和圖像數(shù)據(jù)類(lèi)型(image)時(shí),默認(rèn)情況是與常見(jiàn)的基本數(shù)據(jù)類(lèi)型(如char、int等)這樣的數(shù)據(jù)時(shí)單獨(dú)存儲(chǔ)的,也就是說(shuō),如 果一個(gè)表中的字段有基本類(lèi)型和圖像文本類(lèi)型,那么,在輸入數(shù)據(jù)時(shí),基本類(lèi)型和圖像文件數(shù)據(jù)并不是保存在同一個(gè)頁(yè)面上,而是分離存儲(chǔ)的。分離存儲(chǔ)后,那么基本類(lèi)型數(shù)據(jù)和文本圖像類(lèi)型數(shù)據(jù)所在的頁(yè)面就是通過(guò)文本指針建立聯(lián)系,是一個(gè)16字節(jié)的二進(jìn)制類(lèi)型指針。在基本類(lèi)型數(shù)據(jù)頁(yè)面中存儲(chǔ)的就是這些指向數(shù)據(jù)的指針,這樣在需要的時(shí)候通過(guò)指針來(lái)操作文本和圖像數(shù)據(jù)。Textptr函數(shù)就可以用于獲得文本和圖像數(shù)據(jù)存儲(chǔ)的文本指針,這個(gè)指針獲得后就可以被操作文本和圖像數(shù)據(jù)的函數(shù)(wrutetext、readtext和updatetext等)進(jìn)行操作。如果沒(méi)有有效的指針,文本和圖像函數(shù)是無(wú)法操作數(shù)據(jù)的。
語(yǔ)法結(jié)構(gòu):
textptr( column )
這里的column就是表中的文本和圖像數(shù)據(jù)列(text、ntext和image)名稱(chēng)。
返回值:
varbinary類(lèi)型16字節(jié)指針。
配合使用的函數(shù):
在編寫(xiě)含有TEXTPTR函數(shù)的T-SQL代碼時(shí),下表所示的函數(shù)經(jīng)常被使用。
|| ||
檢測(cè)文本指針是否有效TEXTVALIDtextvalid函數(shù)用于檢測(cè)文本指針是否有效。
語(yǔ)法結(jié)構(gòu):1
textvalid( 'table.column',text_ptr )
參數(shù)說(shuō)明:
table:表的名稱(chēng),必須包含
column:表中的二進(jìn)制數(shù)據(jù)列(text、ntext和image)名稱(chēng)
text_ptr:要檢測(cè)的文本指針
返回值:
int,如果指針有效返回1,否則分那會(huì)0。
讀取文本圖像列內(nèi)容READTEXTreadtext函數(shù)用于讀取文本或圖像列的內(nèi)容,按照指定的偏移量開(kāi)始讀取指定字節(jié)數(shù)。如果是圖像列(image),這樣讀取的是字節(jié)數(shù),而不是現(xiàn)實(shí)圖像本身。
語(yǔ)法結(jié)構(gòu):
readtext{ table.column text_ptr offset size } [holdlock]
參數(shù)說(shuō)明:
table:表名稱(chēng)
column:列名稱(chēng)
text_ptr:有效的文本指針,即16字節(jié)的binary數(shù)據(jù)。
offset:開(kāi)始讀取text、image類(lèi)型數(shù)據(jù)之前,要跳過(guò)的字節(jié)數(shù)。讀取ntext類(lèi)型數(shù)據(jù)之前要跳過(guò)的字符數(shù)。
size:讀取的字節(jié)數(shù)(使用text或image數(shù)據(jù)類(lèi)型時(shí))或字符數(shù)(使用ntext數(shù)據(jù)類(lèi)型時(shí))。如果size為0,則讀取4KB數(shù)據(jù)。
holdlock:使文本值被鎖定以進(jìn)行讀取,直到十五結(jié)束為止。其他用戶(hù)可以讀取該值,但不能對(duì)其進(jìn)行修改。
返回值:
varchar字符。
示例:以后寫(xiě)
寫(xiě)入文本圖像列內(nèi)容WRITETEXTwritetext函數(shù)用于向文本或圖像寫(xiě)入內(nèi)容,同時(shí)可以選擇為最小日志記錄,這樣寫(xiě)入操作產(chǎn)生的日志寫(xiě)的I/O次數(shù)少,對(duì)數(shù)據(jù)庫(kù)性能影響小。
語(yǔ)法結(jié)構(gòu):
writetext{ table.column text_ptr } [ with log ] { data }
參數(shù)說(shuō)明:
table:表名稱(chēng)
column:列名稱(chēng)
text_ptr:有效的文本指針,即16字節(jié)的binary數(shù)據(jù)。
with log:由數(shù)據(jù)庫(kù)的恢復(fù)模式來(lái)決定writetext操作產(chǎn)生的日志行為。因?yàn)閠ext、ntext、imge類(lèi)型的數(shù)據(jù)一般情況下都比較大。比如一幅圖片可能上百KB,我們知道一個(gè)數(shù)據(jù)頁(yè)面的容量是標(biāo)準(zhǔn)的8KB。所以一幅圖片很可能就需要幾時(shí)個(gè)甚至更多的數(shù)據(jù)頁(yè)面,所以writetext操作所產(chǎn)生的I/O次數(shù)是很多的,而過(guò)多的I/O次數(shù)將影響數(shù)據(jù)庫(kù)的性能。該參數(shù)的引入是交給數(shù)據(jù)庫(kù)的恢復(fù)模式來(lái)決定的writetext操作將產(chǎn)生的日志行為。當(dāng)數(shù)據(jù)庫(kù)公仔在完全恢復(fù)模式時(shí),產(chǎn)生的日志最多,因此對(duì)數(shù)據(jù)庫(kù)性能的影響也最大。當(dāng)工作在簡(jiǎn)單恢復(fù)模式時(shí),產(chǎn)生的日志最少。
data:要存儲(chǔ)的text、ntext或image類(lèi)型的數(shù)據(jù)。writetext以交互方式插入的最大文本長(zhǎng)度約為120KB。
更新文本圖像列內(nèi)容UPDATETEXTupdatetext函數(shù)更新文本或圖像列中的內(nèi)容。與writetext的區(qū)別在于該函數(shù)可以?xún)H更新列中的一部分,而writetext是更新整個(gè)列。
語(yǔ)法結(jié)構(gòu):
updatetext{ table.name.dest_column_name dest_text_ptr } { null | insert_offset } { with log } { inserted_data | { table.name.src_column_name src_text_ptr } }
語(yǔ)法中的參數(shù)說(shuō)明如下。
table_name:表名稱(chēng)。
dest_column_name:列名稱(chēng)。
dest_text_ptr:有效的文本指針,即16字節(jié)的binary數(shù)據(jù)。
insert_offset:以0為基礎(chǔ)的更新其實(shí)位置,對(duì)于Text或image列,insert_offset是在插入新數(shù)據(jù)前要從現(xiàn)有列的起點(diǎn)跳過(guò)的字節(jié)數(shù)。對(duì)于ntext列,insert_offset是字符數(shù)(每個(gè)ntext字符占用2個(gè)字節(jié))。從此基數(shù)為零的起始點(diǎn)開(kāi)始的現(xiàn)有text、ntext或image數(shù)據(jù)向右移,為新數(shù)據(jù)留出空間。值為0表示將新數(shù)據(jù)插入現(xiàn)有數(shù)據(jù)的開(kāi)始處。值為null則將新數(shù)據(jù)追加到享有數(shù)據(jù)值后。
delete_length:從insert_offset位置開(kāi)始、要從現(xiàn)有text、ntext、或image列中刪除的數(shù)據(jù)長(zhǎng)度。delete_length值對(duì)于text和image列用字節(jié)指定,對(duì)于ntext列用字符指定。每個(gè)ntext字符占用2個(gè)字節(jié)。值為0表示不刪除數(shù)據(jù)。值為null則刪除現(xiàn)有text或image列中從insert_offset位置開(kāi)始到末尾的所有數(shù)據(jù)。
withlog:日子記錄由數(shù)據(jù)庫(kù)的當(dāng)前模式?jīng)Q定。
inserted_date:要插入現(xiàn)有text、ntext或image列的insert_offset位置的數(shù)據(jù)。這是單個(gè)char、nchar、varchar、nvarchar、binary、varbinary、text、 ntext或image值。inserted_data可以是文字或變量。
table_name.src_column_name:用作插入數(shù)據(jù)源的表或text、ntext、image列的名稱(chēng)。
src_text_ptr:指向用作插入數(shù)據(jù)源的text、ntext或image列的文本指針值,通常使用textptr函數(shù)獲得。
PHPPHP中有一組圖像函數(shù),可以動(dòng)態(tài)生成gif格式的圖像數(shù)據(jù)流并輸出到服務(wù)器。要使這組函數(shù)能夠工作,系統(tǒng)中必須有g(shù)d庫(kù)的支持。如果是在Unix下,應(yīng)該在編譯PHP之前先取得gd的源碼并編譯之,生成libgd.a(chǎn)和一些.h文件,分別拷到系統(tǒng)的庫(kù)目錄和頭文件目錄中(例如/usr/lib和/usr/include):如果是在Windows下,PHP3.0的安裝程序會(huì)安裝一個(gè)gd.dll文件,在程序中加一句,d1(”gd.dll"):,即可使用圖像函數(shù)。2
主要的圖像函數(shù)有:
1.ImageCreate(寬度,高度)
返回一個(gè)圖像描述符。
2. ImageCreateFromGif(文件名):
返回一個(gè)圖像描述符。
3.ImageColorAllocate(圖像描述符,紅,綠,藍(lán)):
返回一個(gè)顏色描述符。由于Gif圖像只能有256色,必須先對(duì)它分配調(diào)色板,這個(gè)語(yǔ)句就是分配一個(gè)調(diào)色板項(xiàng)。
4.ImageColorTransparent(圖像描述符,顏色描述符):
指定某顏色為透明色。
5.畫(huà)圖函數(shù)
ImageArc(圖像描述符,圓心橫坐標(biāo),圓心縱坐標(biāo),橢圓寬,橢圓高,起始角,終止角,顏色描述符);
ImageChar(圖像描述符,字體,x,y,字符,顏色描述符);
ImageCharUp(圖像描述符,字體,x,卜字符,顏色描述符):
ImageCopyResized(目標(biāo)圖像描述符,源圖像描述符,目標(biāo)x, 目標(biāo)y,源x,源卜 目標(biāo)寬,目標(biāo)高,源寬,源高):
ImageDashedLine(圖像描述符,x1,y1,x2,y2,顏色描述符);
ImageFSll(圖像描述符,起始點(diǎn)x,起始點(diǎn)y真顏色描述符):
ImageFilledPolygon(圖像描述符,各頂點(diǎn)數(shù)組,頂點(diǎn)數(shù),顏色描述符);
ImageFilledRectangle(圖像描述符,x1,y1,x2,y2,顏色描述符):
ImageFillToBorder(圖像描述符,起始點(diǎn)x,起始點(diǎn)y,邊界色,填充色):
ImageLine(圖像描述符,x1,y1,x2,y2,顏色描述符);
ImagePolygon(圖像描述符,各頂點(diǎn)數(shù)組,頂點(diǎn)數(shù),顏色描述符):
ImageRectangle(圖像描述符,x1,C,x2,y2,顏色描述符);
ImageSetPixel(圖像描述符,x,y,顏色描述符):
PHP進(jìn)階及PHP數(shù)據(jù)庫(kù)編程技術(shù)
ImageString(圖像描述符,字體,x,y,字符串,顏色描述符);
ImageStringUp(圖像描述符,字體,x,卜字符串,顏色描述符);
這些都是畫(huà)圖函數(shù),需要略作解釋的就是多邊形的頂點(diǎn)數(shù)組內(nèi)依次存放著第一點(diǎn)x,第一點(diǎn)y,第二點(diǎn)x,第二點(diǎn)y,…
6.ImageLoadFont(文件名);
文件應(yīng)該是一個(gè)位圖字體文件,返回一個(gè)字體號(hào)。系統(tǒng)缺省帶有1-5字體號(hào),可以直接使用。
7.ImageSX,ImageSY
分別得到一個(gè)圖像的寬度和高度,接收一個(gè)圖像描述符參數(shù)。
8.ImageColorAt(圖像描述符,x,y);
ImageColorClosest(圖像描述符,紅,綠,藍(lán));
ImageColorExac(圖像描述符,紅,綠,藍(lán)):
ImageColorSet(圖像描述符,顏色描述符,紅,綠,藍(lán)):
ImageColorsForlndex(圖像描述符,顏色描述符):
ImageColorsTotal(圖像描述符):
前三個(gè)返回一個(gè)顏色描述符。ImageColorExact如果找不到匹配返回-1。
ImageColorsForlndex返回一個(gè)三項(xiàng)的數(shù)組,元素分別是紅,綠,藍(lán)值。
ImageColorsTotal返回總顏色數(shù)。
9. ImageFontHeight, ImageFontWidth
接收一個(gè)字體號(hào)作為參數(shù)。
10.IrnageGif(圖像描述符,[文件名]);
如無(wú)文件名,則將出f數(shù)據(jù)流送往瀏覽器。這時(shí)程序一開(kāi)始應(yīng)該有一句:Header("Content·typ&image/gift)
11.ImageDestroy(圖像描述符):
圖像函數(shù)中有一個(gè)小Bug:濃PHP3.0RC和PHP3.0RC3ForUnix的源碼中已經(jīng)發(fā)現(xiàn),現(xiàn)在從www.php.net上的下載文件應(yīng)該已經(jīng)更改),就是不管x的值是什么,ImageSetPixel總是在(卜y)處畫(huà)點(diǎn),不過(guò)這個(gè)問(wèn)題不是很大。
Matlab中圖像函數(shù)圖像增強(qiáng)1.直方圖均衡化的 Matlab 實(shí)現(xiàn)
1.1 imhist 函數(shù)
功能:計(jì)算和顯示圖像的色彩直方圖
格式:imhist(I,n)
imhist(X,map)
說(shuō)明:imhist(I,n) 其中,n 為指定的灰度級(jí)數(shù)目,缺省值為256;imhist(X,map) 就算和顯示索引色圖像 X 的直方圖,map 為調(diào)色板。用
stem(x,counts) 同樣可以顯示直方圖。
1.2 imcontour 函數(shù)
功能:顯示圖像的等灰度值圖
格式:imcontour(I,n),imcontour(I,v)
說(shuō)明:n 為灰度級(jí)的個(gè)數(shù),v 是有用戶(hù)指定所選的等灰度級(jí)向量。
1.3 imadjust 函數(shù)
功能:通過(guò)直方圖變換調(diào)整對(duì)比度
格式:J=imadjust(I,[low high],[bottom top],gamma)
newmap=imadjust(map,[low high],[bottom top],gamma)
說(shuō)明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 為校正量r,[low high] 為原圖像中要變換的灰度范圍,[bottom top]
指定了變換后的灰度范圍;newmap=imadjust(map,[low high],[bottom top],gamma) 調(diào)整索引色圖像的調(diào)色板 map 。此時(shí)若 [low high] 和
[bottom top] 都為2×3的矩陣,則分別調(diào)整 R、G、B 3個(gè)分量。
1.4 histeq 函數(shù)
功能:直方圖均衡化
格式:J=histeq(I,hgram)
J=histeq(I,n)
[J,T]=histeq(I,...)
newmap=histeq(X,map,hgram)
newmap=histeq(X,map)
[new,T]=histeq(X,...)
說(shuō)明:J=histeq(I,hgram) 實(shí)現(xiàn)了所謂“直方圖規(guī)定化”,即將原是圖象 I 的直方圖變換成用戶(hù)指定的向量 hgram 。hgram 中的每一個(gè)元素
都在 [0,1] 中;J=histeq(I,n) 指定均衡化后的灰度級(jí)數(shù) n ,缺省值為 64;[J,T]=histeq(I,...) 返回從能將圖像 I 的灰度直方圖變換成
圖像 J 的直方圖的變換 T ;newmap=histeq(X,map) 和 [new,T]=histeq(X,...) 是針對(duì)索引色圖像調(diào)色板的直方圖均衡。
2.噪聲及其噪聲的 Matlab 實(shí)現(xiàn)
imnoise 函數(shù)
格式:J=imnoise(I,type)
J=imnoise(I,type,parameter)
說(shuō)明:J=imnoise(I,type) 返回對(duì)圖像 I 添加典型噪聲后的有噪圖像 J ,參數(shù) type 和 parameter 用于確定噪聲的類(lèi)型和相應(yīng)的參數(shù)。
3.圖像濾波的 Matlab 實(shí)現(xiàn)
3.1 conv2 函數(shù)
功能:計(jì)算二維卷積
格式:C=conv2(A,B)
C=conv2(Hcol,Hrow,A)
C=conv2(...,'shape')
說(shuō)明:對(duì)于 C=conv2(A,B) ,conv2 的算矩陣 A 和 B 的卷積,若 [Ma,Na]=size(A), [Mb,Nb]=size(B), 則 size(C)=[Ma+Mb-1,Na+Nb-1];
C=conv2(Hcol,Hrow,A) 中,矩陣 A 分別與 Hcol 向量在列方向和 Hrow 向量在行方向上進(jìn)行卷積;C=conv2(...,'shape') 用來(lái)指定 conv2
返回二維卷積結(jié)果部分,參數(shù) shape 可取值如下:
》full 為缺省值,返回二維卷積的全部結(jié)果;
》same 返回二維卷積結(jié)果中與 A 大小相同的中間部分;
valid 返回在卷積過(guò)程中,未使用邊緣補(bǔ) 0 部分進(jìn)行計(jì)算的卷積結(jié)果部分,當(dāng) size(A)>size(B) 時(shí),size(C)=[Ma-Mb+1,Na-Nb+1]
。
3.2 conv 函數(shù)
功能:計(jì)算多維卷積
格式:與 conv2 函數(shù)相同
3.3 filter2函數(shù)
功能:計(jì)算二維線(xiàn)型數(shù)字濾波,它與函數(shù) fspecial 連用
格式:Y=filter2(B,X)
Y=filter2(B,X,'shape')
說(shuō)明:對(duì)于 Y=filter2(B,X) ,filter2 使用矩陣 B 中的二維 FIR 濾波器對(duì)數(shù)據(jù) X 進(jìn)行濾波,結(jié)果 Y 是通過(guò)二維互相關(guān)計(jì)算出來(lái)的,其大
小與 X 一樣;對(duì)于 Y=filter2(B,X,'shape') ,filter2 返回的 Y 是通過(guò)二維互相關(guān)計(jì)算出來(lái)的,其大小由參數(shù) shape 確定,其取值如下
:
》full 返回二維相關(guān)的全部結(jié)果,size(Y)>size(X);
》same 返回二維互相關(guān)結(jié)果的中間部分,Y 與 X 大小相同;
》valid返回在二維互相關(guān)過(guò)程中,未使用邊緣補(bǔ) 0 部分進(jìn)行計(jì)算的結(jié)果部分,有 size(Y)