❶ 數學建模問題,求大神!請詳細,先奉上50分!
問題一,對於給定的來自同一頁印刷文字文件的碎紙機破碎紙片(僅縱切),我們可以建立碎紙片拼接復原模型和演算法,並針對附件1、附件2給出的中、英文各一頁文件的碎片數據進行拼接復原。對於常規文檔碎紙片計算機拼接方法一般利用碎片邊緣的尖點特徵、尖角特徵、面積特徵等幾何特徵,搜索與之匹配的相鄰碎紙片並進行拼接,這種基於邊界幾何特徵的拼接方法適用於邊緣形狀相似的碎紙片。根據附件1、附件2中所給圖片,我們可以看出圖片只有黑白兩種顏色,而且切割時由機器切割,每張圖片的大小、形狀基本一致。因此,本題的圖像拼接不適合採用特徵匹配法,只適合採用灰度拼接。我們可以採用灰度匹配模型對附件一、二中的所有圖片進行灰度二值法,將圖片轉化為數值矩陣。這樣就可以實現將其文字信號轉化為數字信號。最後,我們可以利用matlab編程,將轉化後每幅圖片的數字矩陣第一列與最後一列按照一定的相似度的衡量法則將相似度高的矩陣所對應的圖片進行自動拼接。根據所得的拼接圖片進行人眼識別,如果所得圖片完整無誤,就不需要人工干預。如果所得圖片存在錯誤,則需要採取人工干預。
問題二,對於碎紙機既縱切又橫切的情形,我們設計碎紙片拼接復原模型和演算法可以在問題一模型和演算法的基礎上進行改正,並針對附件3、附件4給出的中、英文各一頁文件的碎片數據進行拼接復原。我們的基本解題思路是首先將每張圖片灰度二值化後形成的矩陣,選取每一個矩陣的第一行與最後一行。然後利用matlab進行編程,先根據數據矩陣的第一行與最後一行進行匹配,從而得出19條縱向拼接而成的圖片。然後再將這19張圖片進行數據二值化,選取每一個二值化後矩陣的第一列與最後一列,在運用問題一中的matlab程序即可得到一幅完整的圖片。如果在進行開始的列拼接過程中出現了錯誤,則進行人工干預。在完整拼接後,如果所得圖片出現錯誤,我們就進行人工干預,從而修正錯誤。
問題三,對於所給碎片數據為雙面列印文件時,因此我們需要採用不同的模型進行碎紙片拼接復原。附件5給出的是一頁英文印刷文字雙面列印文件的碎片數據。我們必須設計相應的碎紙片拼接復原模型與演算法。附件5中所給的圖片,只標出了每一張紙片的兩面,但並未確定哪一張為正面,哪一張為反面。並且兩面均為同一文字,同一字體,並未有任何區別,
❷ 規則碎紙片的拼接復原技術
摘 要:分析了基於幾何特徵的碎紙片自動拼接方法的缺點,研究了碎紙片內文字行特徵、表格特徵特點,以及碎紙片內文字行 特徵、表格線特徵的獲取方法,提出了基於碎片文字行特徵或表格特徵的碎片半自動拼接演算法。根據演算法研製了 C 語言計算機 程序,用該程序對一實際例子進行了拼接試驗,試驗結果表明該方法效果良好。
關鍵詞:碎紙片拼接;圖像拼接;模式識別
❸ 如何用matlab處理碎紙片拼接問題
用matlab處理碎紙片拼接:
1、思路:
分別用n個變數儲存n個碎紙片圖像,然後用矩陣拼接的方式把碎紙片拼接。
2、具體代碼:
clear all
close
I1=imread('008.bmp');
I2=imread('014.bmp');
I3=imread('012.bmp');
I4=imread('015.bmp');
I5=imread('003.bmp');
I6=imread('010.bmp');
I7=imread('002.bmp');
I8=imread('016.bmp');
I9=imread('001.bmp');
I10=imread('004.bmp');
I11=imread('005.bmp');
I12=imread('009.bmp');
I13=imread('013.bmp');
I14=imread('018.bmp');
I15=imread('011.bmp');
I16=imread('007.bmp');
I17=imread('017.bmp');
I18=imread('000.bmp');
I19=imread('006.bmp');
a=[I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17,I18,I19];
imshow(a)
figure;
I1=imread('003.bmp');
I2=imread('006.bmp');
I3=imread('002.bmp');
I4=imread('007.bmp');
I5=imread('015.bmp');
I6=imread('018.bmp');
I7=imread('011.bmp');
I8=imread('000.bmp');
I9=imread('005.bmp');
I10=imread('001.bmp');
I11=imread('009.bmp');
I12=imread('013.bmp');
I13=imread('010.bmp');
I14=imread('008.bmp');
I15=imread('012.bmp');
I16=imread('014.bmp');
I17=imread('017.bmp');
I18=imread('016.bmp');
I19=imread('004.bmp');
b=[I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17,I18,I19];
imshow(b)
(3)碎紙片復原演算法擴展閱讀:
matlab使用技巧:
1、在編寫Matlab程序的時候,需要可以用 % 來注釋掉代碼,或者可以直接使用快捷鍵【Ctrl + R】來注釋程序;
2、同時如果需要取消注釋代碼,可以選擇直接去除%或者使用快捷鍵【Ctrl + T】來取消注釋;
3、可以選擇【Edit】,之後點擊【Copy Figure】,新建Word文檔,點擊【粘貼】,之後就可以看到復制的圖片了
❹ 數學建模
2013高教社杯全國大學生數學建模競賽B題
評閱要點[說明]本要點僅供參考,各賽區評閱組應根據對題目的理解及學生的解答,自主地進行評閱。
本題要求對數據提取合適的特徵、建立合理有效的碎紙片拼接復原模型。可以考慮的特徵有鄰邊灰度向量的匹配、按行或按列對灰度求和、行距等。關於演算法模型,必須有具體的演算法過程(如流程圖、演算法描述、偽代碼等)及設計原理。雖然正確的復原結果是唯一的,但不能僅從學生提供的復原效果來評定學生解答的好壞,而應根據所建的數學模型、求解方法和計算結果(如復原率)三方面的內容做出評判。另一方面,評判中還需要考慮人工干預的多少和干預時間節點的合理性。問題1.僅有縱切文本的復原問題由於「僅有縱切」,碎紙片較大,所以信息特徵較明顯。一種比較直觀的建模方法是:按照某種特徵定義兩條碎片間的(非對稱)距離,採用最優Hamilton路或最優Hamilton圈(即TSP)的思想建立優化模型。關於TSP的求解方法有很多,學生在求解過程中需要注意到非對稱距離矩陣或者是有向圖等特點。還可能有種種優化模型與演算法,只要模型合理,復原效果好,都應當認可。本問題相對簡單,復原過程可以不需要人工干預,復原率可以接近或達到100%。問題2. 有橫、縱切文本的復原問題一種較直觀的建模方法是:首先利用文本文件的行信息特徵,建立同一行碎片的聚類模型。在得到行聚類結果後,再利用類似於問題1中的方法完成每行碎片的排序工作。最後對排序後的行,再作縱向排序。本問題的解法也是多種多樣的,應視模型和方法的合理性、創新性及有效性進行評分。例如,考慮四鄰近距離圖,碎片逐步增長,也是一種較為自然的想法。問題3.正反兩面文本的復原問題這個問題是問題2的繼續,基本解決方法與問題2方法相同。但不同的是:這里需要充分利用雙面文本的特徵信息。該特徵信息利用得好,可以提升復原率。 在閱卷過程中,可以考慮學生對問題的擴展。例如,在模型的檢驗中,如果學生能夠自行構造碎片,用以檢驗與評價本隊提出的拼接復原模型的復原效果,可考慮適當加分。閱卷時應有程序,程序的運行結果應和論文給出的結果一致。
clear %釋放空間
clc %清屏
%圖片數據讀取
left_col = [];
right_col = [];
for fp = 0 : 208
str = int2str(fp);
if fp < 10
name = ['0' '0' str '.bmp'];
elseif fp >= 10 & fp < 100
name = ['0' str '.bmp'];
else
name = [str '.bmp'];
end
a = imread(name);
[m,n] = size(a);
left_col = [left_col a(:,1)];
right_col = [right_col a(:,n)];
end
%讀取完畢
left_col = double(left_col);%類型轉換
right_col = double(right_col);
% 找紙片最左邊(left_col)像素全為255(空白)的所有列
row = 1;
for bi=1:209;
number=length(find(left_col(:,bi)==255));
if number == 180
S(row,1)=bi;%保存第一列像素為空(灰度值:255)的放在數組S第一列
row = row + 1;
end
end
S = [S(:,1) zeros(row-1,18)];%矩陣初始化
O = [ones(row-1,19)]; %初始化一個單位矩陣
sign = 1;
w = 0;
for r=1:row-1;%行
for p=1:18;%列p+1
num = 10000000000;%使num足夠大
for j=1:209;
count = 0;
count = length(find(S==j));%除去重復
if count ~= 0
continue;
else
blank = length(find(right_col(:,S(r,p)) == 255));%如果碎紙片右邊界全為255(即空白),則跳出,終止此行後面拼接
if blank == 180
sign = 0;
break;%跳出本循環,進入p循環
else
ri=right_col(:,S(r,p));%計算左右拼接精確度
le=left_col(:,j);
c=ri-le;
c = c.^2;
error=sum(c(:));
end
if num >= error %找出差值最小的,精確度最高
num = error;
w = j;
end
end
end
if sign == 0
sign = 1;
break; %跳出p循環,進入r循環
else
S(r,p+1)=w; %二維數組儲存每個碎紙片拼接位置
end
end
end
S = S - O; %數據整理,圖片從000.bmp開始,數組下標從1開始
❺ 碎紙片的拼接模型怎麼做呀,數學建模
第1步:利用MATLAB軟體[1]依次讀取附件1(或附件2)中的所有碎紙片圖像,其中圖片標記為 ;
第2步:利用MATLAB軟體中的im2bw函數對所有碎紙片圖像進行二值化處理[2],即所有的碎紙片都用僅包含0或1的二維矩陣 表示,其中1表示白色,0表示黑色;
第3步:依次提取矩陣 的第1列與最後1列元素,分別標記為 與 ;
第4步:將 中元素全為1所對應的碎片挑選出來,作為拼接復原圖像的左邊第1條碎片,並標記為 ;
第5步:將 的最後1列元素分別與剩餘碎紙片的第1列元素作點積運算並求和,其中和值最大者即為與 最為匹配的碎紙片[3],記作 ,並將其放在拼接復原圖像的左邊第2條;
第6步:依此類推,得到 , ,……, ,最後得到拼接復原圖像 。
根據上述演算法,利用MATLAB軟體編程(程序見附錄1)可得問題1中附件1與附件2的碎片拼接順序結果如表1與表2所示;附件1與附件2的拼接復原圖像見附錄2與附錄3所示。
❻ 數學建模碎紙片的拼接復原,如何求第一行文字中心位置
殘片復原(reconstructing shredded documents)的問題有多種研究策略,全人工不可能,全自動也不可能,所以,主流解決方案是結合類似於拼圖游戲的手工復原方法和進行匹配和搜尋的計算機演算法。
其解決方案是這樣的。首先,該隊伍設計出演算法,基於紙張碎片的邊緣性狀等特徵,能夠自動搜尋到最可能匹配的紙張碎片對。接著,這三人號召眾親朋好友對這些可能的碎片對進行人工篩選。夜以繼日的奮戰之後,拼湊出了最後的結果。古德介紹說:「我們的演算法基於計算機視覺、圖形學,並且結合了傳統的模擬軟體,才能達到高效和有效。」
❼ 碎紙復原的魔術是怎麼做到的
這個需要道具的,去魔術店問問吧,這個道具還有個名字叫「碎紙還原」,很簡單的一個道具,並且很便宜。
❽ 數學建模 碎紙片的拼接復原
首先假設旋轉後的碎片像素高度為H,每行的像素寬度保 存在數組肼曬Ir(七).(扣l,2.⋯.Ⅳ)內.每行的宅白點數保存 在數組6缸n女chr(々),(扣1,2.⋯,Ⅳ)內,總的文字圖像個數變 量設為od內l研.文字行高度和變數為c^a覷劬,,誇它們的 初值為O.即令礬d恤m卜0.西口觸鯽卜0,則文字圖像個數 和文字行高和可按下述演算法計算: (」戽咖.表示從碎片最低點開始從下往上掃描。 (2)t一抖l,判斷掃Ⅳ否,如果大於,結束.否則轉(3)。 (3)判斷pnr凸f(I)<20否.也即判斷該行碎片寬度是否小 於20個像素寬度,如果小於,轉(2).否則轉(4)。 (4)判斷Pnf西f恥)一6缸Htof似)<5否,也即判斷該行白 點個數與該行像素點寬度的差是否在5范圍內.小於5.表示該 行是空白行,轉(5),否則表示不是空白行,轉(2)。 (5)記下該行的序號七.,尋找下一個空白行號七,.判斷女: 是否存在.如果存在,轉(6).否則表示掃描到最高點,掃描過 程結束。 (6)判斷女,一≈,>10否,即要求文字塊圖像高度應大於某 個最小值,這里為lO,如果不作此限制.那麼表格線也可能被 認為是文字行,這是不允許的。若大於文字圖像最小高度.轉 (7),否則.I+-女,,轉(2)。 (7)計算行t,,七,內的文字圖像個數肌,注意文字圖像的 寬度與高度啦:一七.)的比值應在{~3之問.不在此比值范圍的 ) 圖像不應統計。 (8)判斷卅>0否,大於則c異n^鼬腫卜c帕內lm+m,c^口r如. 瞎由卜西口般動,+島一而,轉(9).如果m等於0.不累加文字總 個數和文字行高度,也轉(9),顯然t,^,行位置就是文字行的 y坐標位置。 (9)t+.t,,尋找下一個序號為女,的空白行,t、應該小於 .E,,同時第t,+l行不是空白點行.如果存在t,,則七÷_^,一l, 轉(2),否則結束。 由於篇幅限制.未給出步驟(5)中的「尋找下一個空白行 號膏:」,步驟(7)中「計算行七,,七:內的文字圖像的個數研」,以 及步驟(9)中「尋找下一個序號為t,的空白行」演算法具體過程, |
❾ 碎紙復原演算法。 階乘原理 與碎紙片復原演算法相關的資料
熱點內容
dns使用加密措施嗎
瀏覽:172
php獨立運行
瀏覽:530
手機sh執行命令
瀏覽:727
雲伺服器的角色
瀏覽:733
單片機頻率比例
瀏覽:840
我的世界伺服器如何關閉正版驗證
瀏覽:504
如何查roid伺服器上的
瀏覽:130
安卓手機主板如何撬晶元不掉電
瀏覽:249
php各個框架的優缺點
瀏覽:101
php1100生成數組
瀏覽:359
以後做平面設計好還是程序員好
瀏覽:552
雲伺服器應用管理
瀏覽:438
飢荒雲伺服器搭建過程
瀏覽:186
可編程式控制制器優點
瀏覽:99
壓縮垃圾車說明書
瀏覽:28
五輪書pdf
瀏覽:802
單片機定時流水中斷系統流水燈
瀏覽:701
u8如何連接伺服器配置
瀏覽:68
動力在於緩解壓力
瀏覽:867
報考科一用什麼app
瀏覽:346
|