开发平台(Platform): (Ex: Win10, Linux, ...)
win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
QT Creator
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
自己写的ImgProcess
问题(Question):
利用Class 中的function,去修改Class里面的阵列,
怎么改都不会变,fprintf到txt档都是0。
◎另外的小问题:
(至于为什么要fprintf成txt来debug...
因为QT createor我不知道要把处理的影像档,放哪才读的到。
每次都要图档放在debug里面,compile完再自己去debug资料夹点执行档,
如果用creator直接按执行,放main.cpp旁边、放exe旁边,都读不到...
为什么!!!!!!
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
1.
http://ideone.com/1vDmDI
Class 里面public的: unsingned char img_ori[]、img_dst
void imgProc();
2.
http://ideone.com/TGh5xm
主要看:161~165行,我将阵列全部存成255。
当我UI画面按下button,执行38行的creatFlist()
而111行,执行 testWidget::imgProc();
114~118将阵列储存至txt档
124行 将阵列存成bmp档
结果不论是图档或是txt档,都为全黑和全0
但假如我将imgProc内执行的东西,移到creatFlist()中
例如我将111行改成
for(int i=0; i<(int)(width*height); i++)
img_dst[i]=(unsigned char)255;
直接执行,不要透过imgProc()这个function去间接执行,
则bmp档成功变全白、txt也是全为255,
我第一次写c++使用class,
是不是哪里没注意呢?
为什么在别的function中修改阵列都无法改值
P.S. 我确定imgProc()有被执行到,因为imgProc()一执行
我先让Label显示我要的字串,是有显示的!!!
(以前写都是C)
拜托各位了,若太混乱,或是不懂我在问什么,
请跟我说,我重新整理文章流程,让各位好阅读!!
感谢大家