C_and_CPP 板


LINE

開發平台(Platform): (Ex: Win10, Linux, ...) W10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Visual studio 2010 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Opencv ver2.4.9 問題(Question): 無法正確執行結果 餵入的資料(Input): 任意jpg圖片 預期的正確結果(Expected Output): 可以輸入角度 正確輸出旋轉後的圖片 錯誤結果(Wrong Output): 顯示記憶體違規,不知道那裡下手 程式碼(Code):(請善用置底文網頁, 記得排版) #include " highgui.h" #include <cv.h> #include <math.h> #include <stdio.h> #include <Windows.h> using namespace std; void tran( unsigned char * frame_in, unsigned char * frame_out, int height, int width,int degree) { int x1,y1,i,j; double pi=3.1415926; double angle=degree*pi/180; int x,y,z; for(x=0; x<width; x++) { for(y=0;y<height; y++) { for(z=0;z<3;z++) { x1=i*cos(angle)-j*sin(angle); y1=j*cos(angle)+i*sin(angle); if((x1>=0)&&(x1<width)&&(y1>=0)&&(y1<height)) { frame_out[(y*width+x)*3+z] = frame_in[(x1*width+y1)*3+z]; }else{ frame_out[(y*width+i)*3+z] = 0; } } } } } int main() { // int degree; printf("choose the degree to rotate the picture\n"); scanf("%d",&degree); // IplImage *Image1 ; Image1=cvLoadImage("lena.jpg",1); int height, width; height = Image1->height; width = Image1->width; cvNamedWindow("Original Image", CV_WINDOW_AUTOSIZE); cvShowImage("Original Image",Image1); unsigned char * frame_in; unsigned char * frame_out; frame_in = (unsigned char *)malloc(height*width*3*sizeof(unsigned char)); frame_out = (unsigned char *)malloc(height*width*3*sizeof(unsigned char)); /* Load Image to frame_in */ for(int i=0 ; i<height*width*3 ; i++) { frame_in[i] = Image1->imageData[i]; } tran(frame_in, frame_out, height, width, degree); //轉置 /* 從frame_out存回Image1 */ for(int i=0 ; i<height*width*3 ; i++) { Image1->imageData[i] = frame_out[i]; } cvNamedWindow("Result", CV_WINDOW_AUTOSIZE); cvShowImage("Result",Image1); cvWaitKey(0); free(frame_in); free(frame_out); return 0; } 補充說明(Supplement): 暫時無,有會在下方回覆,謝謝此版 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.13.49
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1497497828.A.5F6.html
1F:推 libertyleave: 你 轉置 function 中, i,j 似乎沒有給初始值就拿來06/15 13:13
2F:→ libertyleave: 用了, 這樣你 x1 y1 的給array用可能會有問題06/15 13:14
3F:→ libertyleave: 你迴圈是用x,y 看不出來 i j是哪裡來的06/15 13:16
目前顯示的問題是卡在長寬那塊 數字無法存入array ※ 編輯: amateuruser (140.124.249.51), 06/15/2017 15:02:16
4F:推 libertyleave: 因為你 tran(...) 裡面有問題呀06/15 15:05
5F:→ libertyleave: 還有像你有一個 if理面是06/15 15:06
6F:→ libertyleave: frame_out[(y*width+x)*3+z] = fram_in[...]06/15 15:07
7F:→ libertyleave: 到了 else 中是06/15 15:07
8F:→ libertyleave: frame_out[(y*width+i)*3+z] = 006/15 15:08
9F:→ libertyleave: x 怎麼會變成 i 了06/15 15:08
10F:→ libertyleave: 如果你是指 frame_in[i] = Image1->imageData[i]06/15 15:10
11F:→ libertyleave: 存不進去 你要確定 Image1->imageData[] 的大小有到06/15 15:11
12F:→ libertyleave: hight*width*3 呀 話說為甚麼要*306/15 15:12
13F:→ libertyleave: 我覺得 Image1->imageData[] 的大小應該只會有長X寬06/15 15:13
14F:推 Zero0910: opencv不是有提供旋轉的函式 還是你是要練習? :p06/15 17:16
15F:→ Zero0910: *3是因為RGB吧 雖然應該是這樣寫:(y*width*3+x)+z06/15 17:18
16F:→ Zero0910: 然後直接用width不太對 因為opecv在配記憶體會幫你align06/15 17:20
17F:→ Zero0910: 正確應該用(y*image1->widthStep+x)+z (假設為8bit的圖)06/15 17:21
我是存粹要練習 因為有考慮以這個程式碼為依據 做基本影像處理 ※ 編輯: amateuruser (140.124.249.31), 06/15/2017 18:26:21







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP