標籤

C# (4) asp.new (3) R (2) Delphi (1) Dos (1) english (1) music (1)

2012年11月13日 星期二

StirMark使用說明:(2012/11/13)

StirMark使用說明:(2012/11/13)
下載stirmark benchmark 4.0:我是下載binary and C/C++ source code並解壓縮。

目錄說明:
/ Bin/ Benchmark/ the benchmarking tool itself
Libraries/ libraries sent by users
Profiles/ profiles are text configuration files describing the test to be applied (one profile per application and per 'robustness' level)
Media/ Input/ Images/ Set1/ 輸入的影像放這裡
Set2/

MyFolder/
...
Output/ (Same substructure is created for input. ) 輸出影像的資料夾
目錄說明:參考王旭正、柯建萱、ICCL資訊密碼暨建構實驗室, 資訊媒體安全:偽裝學與數位浮水印,初版,台北縣汐止市,博碩文化股份有限公司,2007年8月。page 236):

Step 1.將嵌入浮水印的影像(watermarked image)放:Media/ Input/ Images/ Set1/
Step 2.到Profiles/下找SMBsettings.ini:改攻擊參數。可不改,用預設。
Step 3.到Bin\Benchmark\下找StirMark Benchmark.exe,點二下。此為執行檔

Final Step:執行後,所有攻擊後的圖在:Media/ Output/ Images/ Set1/中。



stirmark benchmark 4.0 破壞程度(小) ---> 破壞程度(大) example(預設) 說明 問題使用狀況
Test1=Test_PSNR Strength of the watermark embedding
Test2=Test_EmbedTime ; Number of embeddings with random key per media ; This is used to compute the average embeding and extraction time
Test3=Test_AddNoise 0 -> 100 list=5
Test4=Test_JPEG 100 -> 0 list=5 JPEG_5:等級為5的JPEG壓縮。(等級低,壓縮比高)。 OK
Test5=Test_MedianCut 3 5、... the odd number < min(width px, height px) list=3 中位數濾波攻擊。MEDIAN_3:採用3X3的遮罩。 OK
Test6=Test_ConvFilter1(Gaussian filtering)
Convolution
filter1 = 3 3 9 1 2 1 2 4 2 1 2 1 和高斯函數做convolution。也就是該點像素以高斯函數做為附近像素值的加權平均之權重,加權後的均值取代原該點像素。所以有平滑、模糊的效果。
3的遮罩為[1 2 1;2 4 2;1 2 1]。
參考:我+單元五、空間濾波
平滑...為什麼我的會變白~~~*2OK
Test6=Test_ConvFilter2(sharpening) filter2 = 3 3 9 0 1 0 1 5 1 0 1 0 3的遮罩為[0 1 0;1 5 1;0 1 0]。
參考:WEB化的Watermark安全性
銳化...為什麼我的會變黑~~~*2OK
Test7=Test_SelfSimilarities 使用RGB色系,RGB通道,交換攻擊
Test8=Test_RemoveLines
Test9=Test_Cropping 100 -> 0 list=50 取中間部分。50:表示取下中間長寬50%做為測試 OK
Test10=Test_Rescale 100 -> 0 or infinite list=10 縮放百分比:10% OK
Test11=Test_Rotation 0 -> 360 list=0.1 逆時針轉0.1度 OK
Test12=Test_RotationCrop
Test13=Test_RotationScale
Test14=Test_Affine Affine
 Test15=Test_SmallRandomDistortions
Test16=Test_LatestSmallRandomDistortions
參數說明表



PS:
*1:StirMark出來的圖檔是BMP格式。但進去格式不分。
*2:Test_ConvFilter用法
[Test_ConvFilter] ; filter coefficients
; first two numbers correspond to width and height
; second number is division factor

; Gaussian filtering
  filter1 = 3 3 16 1 2 1 2 4 2 1 2 1
;filter1 =mask的寬 mask的高 除數 1 2 1 2 4 2 1 2 1
;這裡除數取1+ 2 +1+ 2+ 4+ 2+ 1+ 2+ 1=16

; sharpening
filter2 = 3 3 1 0 -1 0 -1 5 -1 0 -1 0

; edge
filter3 = 3 3 1 0 -1 0 -1 4 -1 0 -1 0

2012年11月9日 星期五

Asp.net和C#:檔案上傳元件

Asp.net和C#:檔案上傳元件
==============SwfUpload==============
//upload.aspx.cs // Get the data
      HttpPostedFile jpeg_image_upload = Request.Files["Filedata"]; 
      string file_path = Server.MapPath("~/upload/");
      if (!Directory.Exists(file_path)) { Directory.CreateDirectory(file_path); }
      Request.Files["Filedata"].SaveAs(file_path + Request.Files["Filedata"].FileName);//存圖

http://blog.csdn.net/lfp0202/article/details/5800745
SWFUpload V2.2.0 说明文档
http://www.leeon.me/upload/other/swfupload.html
SWFUpload 英文说明文档
http://demo.swfupload.org/Documentation/
http://www.dotblogs.com.tw/puma/archive/2008/07/16/4504.aspx

http://www.cnblogs.com/hinroe/archive/2011/01/18/1938738.html http://edu.save95.cn/index.php/video/index/14978
SWFUpload 未經定義
http://yrbrlono.blogspot.tw/2011/06/swfupload.html http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD200712191119337ET/1.html http://niunan.iteye.com/blog/1343553
http://blog.niunan.net/show.php?id=364
http://sholfen.pixnet.net/blog/post/38230094-%E5%A4%9A%E6%AA%94%E6%A1%88%E4%B8%8A%E5%82%B3%EF%BC%9A%E4%BD%BF%E7%94%A8swfupload
http://topic.csdn.net/u/20100406/15/347649c5-8b74-4c2d-95b8-ec931a666a89.html

http://www.dotblogs.com.tw/chhuang/archive/2008/02/23/1093.aspx
http://chainchung.pixnet.net/blog/post/17177164-%E7%B6%B2%E8%B7%AF%E7%9B%B8%E7%B0%BF%E5%AF%A6%E4%BD%9C%E6%96%B9%E5%BC%8F

官網
https://code.google.com/p/swfupload/wiki/v250Beta1

3.
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" Text="Save Select Images" Width="150px" />

xmlns="http://www.w3.org/1999/xhtml"
    protected void btnSave_Click(object sender, EventArgs e) {
            if (Session["file_info"] != null) {
                  List<Thumbnail> thumbnails = Session["file_info"] as List<Thumbnail>; 
                  string UploadPath = Server.MapPath("upload/"); 
                  foreach (Thumbnail img in thumbnails) { 
                                    FileStream fs = new FileStream(UploadPath + img.ID + ".jpg", FileMode.Create);
                                     BinaryWriter bw = new BinaryWriter(fs); 
                                    bw.Write(img.Data); bw.Close(); fs.Close();
                   }
                   Session.Clear(); 
                  }
}
====================================
FileUpload:Mis例子、錯誤(斷線)、斷線修正(web.config)其他
ASP.NET 檔案上傳的兩三事

2012年9月17日 星期一

Asp.net和C#取值:(GridView...)在CS中取ASPX中的值、在ASPX中取CS中的值。

取值:(GridView...)在CS中取ASPX中的值、在ASPX中取CS中的值。
Of course, you can use with the simple textbox,label, etc. .
however, we are discussing how to get the value from GridView,dataList,repeater control here.
we hope to get or find the value from database by the different controls, like GridView controls...
1.取值:Request的用法
在以前asp的年代時,request用在傳遞參數時很好用。但在現在asp.net年代下,皆以CommandName and CommandArgument取代request. 除非有CommandName and CommandArgument做不到時,才用request。以下列出request用法的參考網頁:
ASP.NET 如何取得 Request URL 的各個部分
ASP.NET內抓取網址的方式一覽表(Request)
用asp.net去取得client side的javascript var 值


2.取值(Eval用法):
初學 進階
123 Subject .aspx(放 form/div/之中) .cs
+ aspx中取值 Eval的用法
在TemplateField/ItemTemplate/
Lable
<asp:HyperLink ID="lnk2" runat="server"  NavigateUrl='<%# "NewDetail.aspx?Seq="+ Eval("Seq") %>'/> bind 有"Seq"的資料表
EX:
aspx中取值 Eval的用法
在TemplateField/ItemTemplate/
<a href="History.aspx?Seq=<%# Eval("Seq") %>" >  <%# Eval("Subject") %> </a> bind 有"Seq"的資料表
aspx中取值 aspx中取值方法(函數)
aspx中用GetVar():取得cs中的值 
在ASPX中呼叫:
<%# DloadList().ToString() %>
.CS中寫Public fun.:
public string DloadList() {
            return "ABC";
    }  
+ aspx中取值(隱藏法) 在aspx中,利用hidden value,取得由.cs中產生的數值。 1.<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="javascript:Window('123'+ parent.document.form1.Hidden1.value ,300,350);">
Open</asp:HyperLink>

2.<%= hidPath.Value %> 

3.在GridView/Columns/TemplateField/ItemTemplate中的
 <asp:HyperLink ID="FName" runat="server"
Text='<%# Eval("Name") %>'
NavigateUrl='<%# "~/"+Hidden2.Value+"/" + Eval("Name") %>' Target="_blank"/>

<input id="Hidden1" type="hidden" runat="server" />
Hidden1.Value = Request.QueryString["Seq"];
aspx中取值 以Repeater為例。在aspx中,將lblDLlist文字標籤給予特別的字。 <ItemTemplate>
<asp:Literal ID="lblDLlist" runat="server"></asp:Literal>
</ItemTemplate>
      protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) {

        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
            Literal a1 = (Literal)e.Item.FindControl("lblDLlist");
            // 這邊根據你的需求,把TextBox.Text丟進DB查詢
            a1.Text = "1dfgdf23";
        }
    }
cs中取值 DataList  取得每列相對應的資料(SQL中的)。
在.cs中的DataList之ItemDataBound做設定。
在DataList1_ItemDataBound中{
 DataRowView drv = e.Item.DataItem as DataRowView;
string seq_id = drv.Row[0].ToString();//取得此列的第一個值Row[0]
}
+ 不用(可用CommandName和CommandArgument取代) cs中取值   取1值
取得每列相對應的資料(SQL中的)。
在.aspx中,利用DataKeyNames關鍵字取得每列相對應的資料(Seq in DB)。
Outcomes&Applies
在GridView時,每列加上對應的回傳值。
<asp:GridView ID="GridView1" runat="server" DataKeyNames="Seq"> protected void GridView1_RowDataBound{

 if (e.Row.RowType == DataControlRowType.DataRow) { 
Response.Writ(GridView1.DataKeys[e.Row.RowIndex].Value.ToString());
}
}
+ 不用(可用CommandName和CommandArgument取代) cs中取值 GridView 取2值
取得每列相對應的資料(SQL中的)。
在.aspx中,利用DataKeyNames關鍵字取得每列相對應的資料(Aseq, Seq in DB)。
<asp:GridView ID="GridView1" runat="server" DataKeyNames="Aseq,Seq">  protected void GridView1_RowCommand() {
if (e.CommandName == "myDelete") {
String Aseq = e.CommandArgument.ToString().Split(',')[0].Trim();
String Seq = e.CommandArgument.ToString().Split(',')[1].Trim();
}
}
cs中取值(隱藏法) cs,利用Label(hidden),取得由在Gridview中產生的數值。  <asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"...>
<Columns>
<asp:TemplateField> <ItemTemplate>
<asp:LinkButton ID="lnkViewData" CommandName="myViewData" CommandArgument='<%# Eval("Seq") %>' Text='<%# Eval("Subject") %>' runat="server"></asp:LinkButton>
</ItemTemplate> </asp:TemplateField>
</Columns>
</asp:GridView>

<asp:Label ID="lblseq" runat="server" Text="Label" Visible="False"></asp:Label>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "myViewData") {
lblseq.Text = e.CommandArgument.ToString();
 editData(e.CommandArgument.ToString());
}
}

private void editData(string id) //EX1...看你在CS中怎麼用了...
{ string FilePath = Server.MapPath("~/") + lblseq.Text + "/"; //appendix: files
}
+ 常用 cs中取值 GridView  取2值
用CommandName、CommandArgument
在GridView/Column/asp:TemplateField/itemtemplate/: 
<asp:Button runat="server" Text="刪除" CommandName="myDelete" CommandArgument='<%# Eval("ASeq") +","+ Eval("Seq") %>' />
 protected GridView1_RowCommand()
{
if (e.CommandName == "myDelete") {
String Aseq = e.CommandArgument.ToString().Split(',')[0].Trim();
String Seq = e.CommandArgument.ToString().Split(',')[1].Trim(); 
Response.Writ( "Delete from CarrerItem where ASeq =" + Aseq); 
}
}
cs中取值 GridView  取此列的很多值,並執行。
(如編輯、列印。右例為"Aseq"和"APPLY")
 protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
DataRow row1 = ((DataRowView)e.Row.DataItem).Row;
LinkButton lnkPrint = (LinkButton)e.Row.FindControl("lnkPrint");
lnkPrint.OnClientClick = "Print(" + row1["Aseq"].ToString() + ","+row1["APPLY"].ToString()+");return false;";
}
}
...<head> 
<script language="javascript" type="text/javascript">
 function Print(Aseq,APPLY){
window.open("PrintPage.aspx?Aseq="+Aseq+"&APPLY="+APPLY,'','width=690,height=900,menubars=no,toolbars=no,scrollbars=yes,resizable=yes'); }

</script>
</head>
...
 <asp:GridView ID="GridView3" runat="server" OnRowDataBound="GridView3_RowDataBound"....>
<Columns>
<asp:TemplateField HeaderText="列印"> <ItemTemplate>
<asp:LinkButton ID="lnkPrint" runat="server">列印預覽</asp:LinkButton>
</ItemTemplate> </asp:TemplateField>
</Columns>
</asp:GridView>

備注:
1.BIND時,Eval中的英文是用 雙引號  Eval("ABC ")
2.GridView RowCommand, RowDataBound使用
3.asp.net中Bind和Eval的有什麼區別

參考:
ASP.NET跨頁面傳值方法
在 Repeater 中,怎么根据不同的取值
C# Eval在asp.net中的用法及作用
asp.net中Bind和Eval的有什麼區別
ASP.NET Repeater, C# Repeater
如何抓取Repeater中的控制項的值
repeater为何在后台取不到值?解决思路
datalist的手写代码更新记录的怪问题? - .NET技术 / ASP.NET
asp.net如何用repeater读取数据库内容做链接(C#)急……


2012年9月3日 星期一

Beginning
first day:
1.VS2005 和 SQL sever2008 R2的相容性(SQL Server 2008 支援VS 2005 link)
2.示範網站:台灣國際紀錄片
3.安裝SQL時,驗証選SQL混合那一項(非WINDOWS驗証)

參考用書:
[ASP.NET入門實戰班]上課流程大公開、與書本(上集 / ASP.NET專題實務)(不建議初學者使用,書中許多地方的CODE有錯誤)

以下為勘誤(如果看不懂,請參照別本書)

P10-16: <asp:GridView ID="GridView1" runat="server" DataKeyNames="id">要加 OnRowEditing="GridView1_RowEditing"
P10-18:SqlConnection Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString);中的("testConnectionString")改為["testConnectionString"]
P10-21:什麼叫做SqlConnection Conn = new SqlConnection("資料庫連線字串,ConnectonString");

ETC...

the second day
SqlConnection用法(範例)
GridView 抓控制項的值 part2(RowDataBoundEVEN)
GridViewk在RowDataBound時,取資料庫的值可用DataKeyNames(value from cell of database data原理)




the third day
新手入門資源文章
Page.IsPostBack(判別這個Web Form是不是第一次開啟)


2012年8月21日 星期二

WaterMaker


WaterMark Icemark SignMyImage  Eikonamark(direct linkfrom Here MediaHider Digimarc(Link Chang chiga InfoProtector
成本  28441 562 網址失連 1464 第一年十幾萬,之後每年約八萬(企業版)
EMBED圖  圖(?)
 EMBED文字 文字 文字 文字
 EMBED數字 數字 數字 數字 數字 數字
 EMBED單檔 單檔
參考 Icemark(jpg, tif): 測試加入文字的浮水印(其他的image id ,identification尚未測試 SignMyImage(jpg, tif*): *:Only rgb images with 8 bits per color can be signed.However it COULD convert image data to required format. 測試加入文字的浮水印:在試用版中,"讀不到中文檔名"的檔案且一次只能"開一張",無法同時多張加入浮水印(但裡面有 "批量"簽名的按鈕)。 MediaHider(jpg, tif, bmp):說明。有點復雜、但說明文件中有演算法(研究中)。 Digimarc : 使用教學,非企業版者需使用photoshop(PS)加入Digimarc在PS中的plug-in。
Digimarc:為Photoshop software(PS)中的DigiMarc Picturemarc元件,
即使將影像列印出來後再重新掃描入電腦中, 還是可以偵測出浮水印。若要在影像中加入浮水印, 您必須先向Digimarc 公司註冊以取得個人的 ID, 然後再於 Photoshop 中執行 /Digimarc命令, 將您的 ID 嵌入影像, 並加入版權所有...等資訊。相關的詳細資料, 請參考 Digimarc 網站:http://www.digimarc.com。
數位典藏國家型科技計畫內容發展分項計畫數位典藏工作流程調查表(國立故宮博物院、資訊保護家)
故宮採用浮水印技術,於原始影像檔上加入隱性浮水印,作為版權控制(使用者、買賣方、專利/著作權)和身份確認。一旦故宮文物遭人侵權使用,故宮管理單位便能從資料中偵測(detect)、解出(decode)浮水印,作為版權控制、證明「版權所有」,並依法維護國家財產[2]。數位典藏(中央研究院歷史語言研究所 文物館403室),相關文章:
玖、數位內容保護捌、數位內容保護系列一:什麼是浮水印?系列三:浮水印應用軟體之規劃
數位典藏技術研發
認證中心架構

前三套軟體的評論、比較(德國)


   Reference
YKLee's:intro.Home Page

找試用軟體的WEB(搭配GOOGLE):softseasoft-filefree download 4 windows


----以上-----

2012年7月24日 星期二

論文:次序迴歸及其應用:支持向量機學習法

次序迴歸及其應用:支持向量機學習法
Ordinal regression and applications: A support vector machine approach

以下分為三部份:(一)"結論和討論"、(二)"實驗圖表和結果" 和 (三)"研究所資料 及 論文參考文獻"。
(一)、結論和討論


動機:

        由於次序型資料在日常生活中已隨處可見且日益重要,尤其在疾病資料的分析上和影像檢索領域上更顯為重要。因此本文利用Herbrich建立次序迴歸演算法的方法為基礎,以不同懲罰係數的支持向量機學習法結合累積羅吉斯模型建立新的次序迴歸演算法。


實驗方法:

       本文實驗中,我們分別利用Herbrich[1]模擬資料集的方式創造新的次序型資料集和以CHU WEI網頁的糖尿病資料集(diabetes)做為樣本集合,以Herbrich次序迴歸演算法和我們的新的演算法分析次序型資料並比較分析結果的差異。


實驗結果:

      模擬資料,我們的演算法所得出的次序型資料的平均風險較低,而在diabetes資料集上,我們的演算法解決了在以Herbrich次序迴歸演算法分析diabetes資料集時,閥值產生錯置的問題,並說明我們的演算法可依樣本的重要性,以不同的懲罰係數訓練出更佳的對應函數。另外我們模擬用戶進行相關性回饋,以我們的次序迴歸演算法為基礎來產生檢索結果,達到不錯的效果。最後,為了避免系統在處理次序迴歸演算法的最佳化問題時,產生記憶體不足,因此我們還討論最大增益的單變數SMO來解決此問題,其中本文在單變數SMO上更新位置的取法使得SMO求解時,更加的快速,才得以使得演算法更加的有效且具有實用性。