[投稿隱藏表單]
名 稱
標 題
內 文
附加圖檔[] []
  • 可附加圖檔類型:GIF, JPG, JPEG, PNG,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 4096 KB。
  • 當檔案超過寬 250 像素、高 250 像素時會自動縮小尺寸顯示
  • AA可使用 [aa][/aa] 防止變形
  • 回覆時程式碼縮排會被trim消掉,請善用[code][/code]標色或貼到ideone等網站
  • LaTeX記法可以用「$$」或「\( \)」包起來,例如「$\sum_{k=1}^{k=n} k^2 = \frac{n(n+1)(n+2)}{6}$」

題名一覽
12568: 幸福小秘訣 (0)12520: 尋找工程師 (12)
12567: 無標題 (0)12517: VMWARE問題 (5)
12563: android問題 (2)12510: 無標題 (4)
12561: Github Desktop 有Treeview可用嗎? (1)12507: html tag (1)
12560: 島島救我 (0)12503: 版控Config檔 (4)
12553: 無標題 (2)12493: 無標題 (9)
12548: Java 求救 (3)12488: 網址列編碼 (2)
12538: Beacon問題 (0)12487: 無標題 (0)
12533: 無標題 (3)12478: 無標題 (3)
12523: python (3)12471: IIS的Session (0)
檔名:1446708524231.jpg-(55 KB, 570x453)
55 KB
無標題無名氏15/11/05(四)15:28 ID:a045ZZscNo.11099[回應]
請問BCB可以用畫鼠事件來分辨滑鼠點擊到哪個元件嗎

檔名:1446687238050.jpg-(47 KB, 600x374)
47 KB
微軟釋出VC++2015的編譯器了無名氏15/11/05(四)09:33 ID:k7/TTMIoNo.11097[回應]
http://blogs.msdn.com/b/vcblog/archive/2015/11/02/announcing-visual-c-build-tools-2015-standalone-c-tools-for-build-environments.aspx
上次這麼做已經是VC++2003了
微軟是怕下載流量太大才放這個刪減版嗎?
總之對CodeBlocks社群
或者像我這樣沒在用VC++IDE的人是好消息

我現在幾乎都只用命令列來執行VC++編譯器
已經好一陣子沒看到IDE的畫面了
debug工作在MinGW上就做的差不多了

因為嫌VC++太肥而遲遲沒有安裝的人可以來試試看了
無名氏: 幹,都裝下去了才放出來。等待cuda支援vc2015中 (6H9H5YJk 15/11/05 13:53)

檔名:1446568626264.png-(10 KB, 943x1330)
10 KB
RecyclerView菜逼八15/11/04(三)00:37 ID:W6XYcUH6No.11089[回應]
萬能的島民
最近在寫一個撲克牌遊戲
構想是用一個RecyclerView當手牌
點選想出的牌後牌會反白
然後用向上滑的手勢把牌丟到牌桌的RecyclerView
現在碰到兩個問題
1.向上滑的手勢已經做出來了(用swipe-to-dismiss),可是不論點選多少張牌,只會有一張牌有丟出去的動畫,想請問有什麼方法可以讓選定的每張牌都有動畫?
2.丟到牌桌的RecyclerView這部分,是寫在adapter裡面實作的swipe-to-dismiss方法中,原本的構想是用local broadcast做,可是菜逼八我不知道在getInstance()這個方法中到底該放什麼context?

請島民啾啾窩
無名氏: 貼個部分code吧? (zBWxPA.. 15/11/04 15:11)
菜逼八15/11/05(四)01:32 ID:dyvYsziYNo.11092
補CODE,這是ADAPTER
package sherl.pokesample;

import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.Collections;

/**
* Created by user on 2015/10/20.
*/
public class PlayerBoardAdapter extends RecyclerView.Adapter<PlayerBoardAdapter.ViewHolder> implements ItemTouchHelperAdapter{

// 数据集
private static ArrayList<CardData> mDataset;
public static ArrayList deliveryCard = new ArrayList();
public PlayerBoardAdapter(ArrayList<CardData> dataset) {
super();
mDataset = dataset;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
// 创建一个View,简单起见直接使用系统提供的布局,就是一个TextView
View view = View.inflate(viewGroup.getContext(), R.layout.card_layout, null);

// 创建一个ViewHolder
ViewHolder holder = new ViewHolder(view);

return holder;

}

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
// 绑定数据到ViewHolder上
int num=mDataset.get(i).getCardRefer();
viewHolder.card_number.setText(mDataset.get(i).getTitle());
viewHolder.card_front.setImageResource(mDataset.get(i).getImageRefer());

}

@Override
public int getItemCount() {
return mDataset.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
public TextView card_number;
public ImageView card_front;

public ViewHolder(View itemView) {
super(itemView);

//card_number = (TextView) itemView;
//itemLayoutView.setOnClickListener(this);
card_number = (TextView) itemView.findViewById(R.id.card_number);
card_front = (ImageView) itemView.findViewById(R.id.card_front);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = getAdapterPosition();
mDataset.get(position).setImageRefer(R.drawable.a1);
notifyDataSetChanged();
//deliveryCard.add(position);//(mDataset.get(position).getTitle())
Log.e("手牌", "當前點擊的位置:"+position);
}
});
}
}
//implementation

@Override
public void onItemDismiss(int position) {

if (deliveryCard.size()==0){
mDataset.remove(position);
notifyItemRemoved(position);
}
else {
if (deliveryCard.contains(position)){}
else
deliveryCard.add(position);

for (int i = 0; i < deliveryCard.size(); i++) {
mDataset.remove((int) deliveryCard.get(i) - i);
//Log.e("123456", "當前點擊的位置:");
}
for (int i = 0; i < deliveryCard.size(); i++)
notifyItemRemoved((int) deliveryCard.get(i) - i);
deliveryCard.clear();
}
}
@Override
public void onItemMove(int from, int to) {
Collections.swap(mDataset, from, to);
notifyItemMoved(from, to);
}
}
菜逼八15/11/05(四)01:39 ID:dyvYsziYNo.11093
這是自己加的interface
package sherl.pokesample;

import android.support.v7.widget.RecyclerView;

/**
* Created by user on 2015/10/20.
*/
public interface ItemTouchHelperAdapter {
/**
* Called when an item has been dragged far enough to trigger a move. This is called every time
* an item is shifted, and <strong>not</strong> at the end of a "drop" event.<br/>
* <br/>
* Implementations should call {@link RecyclerView.Adapter#notifyItemMoved(int, int)} after
* adjusting the underlying data to reflect this move.
*
* @param fromPosition The start position of the moved item.
* @param toPosition Then resolved position of the moved item.
*
* @see RecyclerView#getAdapterPositionFor(RecyclerView.ViewHolder)
* @see RecyclerView.ViewHolder#getAdapterPosition()
*/
void onItemMove(int fromPosition, int toPosition);


/**
* Called when an item has been dismissed by a swipe.<br/>
* <br/>
* Implementations should call {@link RecyclerView.Adapter#notifyItemRemoved(int)} after
* adjusting the underlying data to reflect this removal.
*
* @param position The position of the item dismissed.
*
* @see RecyclerView#getAdapterPositionFor(RecyclerView.ViewHolder)
* @see RecyclerView.ViewHolder#getAdapterPosition()
*/
void onItemDismiss(int position);
// void onItemClick(int choose);

}

無標題VB15/11/04(三)11:58 ID:fgeujs0ANo.11090[回應]
島民們在VBA 要怎麼把兩個圖片物件相碰之後反彈呢??
有人說是要算X.Y可是這樣不會太麻煩嗎?
有能夠偵測碰到物件2的程式碼嗎?
無名氏: 偵測碰到物件2的程式碼就是算X.Y (Cx.ptRTI 15/11/04 16:31)
無名氏: 不然就是找物理引擎讓他幫你算X Y (Cx.ptRTI 15/11/04 16:32)
無名氏: 不過VBA應該是沒人做物理引擎 (Cx.ptRTI 15/11/04 16:32)

檔名:1446523394766.png-(585 KB, 585x800)
585 KB
有關LUA的問題無名氏15/11/03(二)12:03 ID:RTEd8WsUNo.11085[回應]
people={
setName=function (self, str)
self.name=str
end
}

a=people
b=people

people=nil

a:setName("My name is a.")
b:setName("My name is b.")

print(a.name) -->"My name is b."

a={
setName=function (self, str)
self.name=str
end
}
b={
setName=function (self, str)
self.name=str
end
}

a:setName("My name is a.")
b:setName("My name is b.")

print(a.name) -->"My name is a."

請問各位島民為什麼第一個寫法會出"My name is b."呢?
這樣寫不是應該跟第二個寫法一樣的嗎?
希望有島民可以講解這個問題發生的原理
無名氏: 再第一個寫法a和b和people是指標,通通指向同一個實體 (6dTIxzZ. 15/11/03 13:08)
無名氏: 感謝6dTIxzZ.的回答,我大概知道是什麼問題了 (RTEd8WsU 15/11/03 13:09)
無名氏: 記得table無法用等號複製就對了(等號傳的是參考) (OAgMCOco 15/11/03 20:20)

檔名:1440579251380.jpg-(207 KB, 1500x1200)
207 KB
無標題無名氏15/08/26(三)16:54 ID:om668LwYNo.10993[回應]
protected void goTo(Class<?> cls,Bundle bundle){

Intent intent = new Intent();
intent.setClass(MainActivity.this, cls);
if(!(bundle==null)&&!bundle.isEmpty()){

intent.putExtras(bundle);

}
startActivity(intent);
MainActivity.this.finish();

}

諸君
菜逼八肥宅我最近正在玩android
在寫主菜單頁面時覺得每個按鈕都要寫一次切換頁面很麻煩
因此寫了一個方法來包(如上)
我的問題是我想讓MainActivity.this可代換
使這個方法在每個activity都可以通用
我已經試過用context代換
可是context.finish()會出錯...
無名氏: 所以說那個錯誤訊息呢 (xx8RJQf2 15/08/27 16:38)
無名氏15/08/27(四)22:10 ID:anD712WUNo.10996
如果是 Activity 的方法是是看這個

protected void goTo(Class<? extends Activity> clz, Bundle data) {
Intent intent = new Intent(this, clz);
if (data != null && !data.isEmpty())
intent.putExtras(data);
startActivity(intent);
finish();
}

intent 的方法大多會返回物建自身
所以要串在一起寫成一行負擔也不會太大
startActivity( new Intent(this, clz).setExtras(data) );
這樣寫也可以 不會占用多少行數
無名氏: 是 ".putExtras" 寫錯了抱歉... (anD712WU 15/08/27 22:13)
無名氏15/10/27(二)16:41 ID:KR4yALFANo.11073
檔名:1445935283677.jpg-(54 KB, 500x625)
54 KB
剛接觸html有多地方不懂,請教各位島民一下,怎麼把自己的畫用超連結呀
無名氏: 我是在http://www.w3schools.com/html/的試一試弄的 (KR4yALFA 15/10/27 16:43)
無名氏: a (uVRSu37U 15/10/28 12:01)
無名氏: <a href="來源"></a>是這樣子嗎 (pB2vWgZ2 15/11/16 19:05)
無名氏15/10/29(四)00:41 ID:rwHwV7CsNo.11074
faggots
無名氏15/11/02(一)23:13 ID:yy1LwhXkNo.11081
先弄清楚"MainActivity.this"這個是甚麼東西吧!關鍵字是"inner class的outer class reference"
public class ActivityChanger implements OnClickListener 
{
private Activity mCurrentActivity;

private Class<?> mTargetActivityClass;

private Bundle mArgs;

public ActivityChanger(Activity current, Class<?> target, Bundle args)
{
mCurrentActivity = current;
mTargetActivityClass = target;
mArgs = args;
}

@Override
public void onClick(View arg0)
{
if(mCurrentActivity != null && mTargetActivityClass != null)
{
Intent intent = new Intent().setClass(mCurrentActivity, mTargetActivityClass);
if(mArgs != null && !mArgs.isEmpty())
intent.putExtras(mArgs);
mCurrentActivity.startActivity(intent);
mCurrentActivity.finish();
}

}
}

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layout.test_main_page);

Button btn = (Button)findViewById(id.page1_button);
btn.setOnClickListener(new ActivityChanger(this, SecondActivity.class, null));
}

}

原PO: 竟然是炫砲的自製listener (W6XYcUH6 15/11/04 17:32)

檔名:1446388995595.gif-(908 KB, 450x253)
908 KB
最近在想一個遊戲的判斷(android的)無名氏15/11/01(日)22:43 ID:VOirs/wQNo.11076[回應]
假設有5*5個格子(x,y)
現在能夠知道手點下去時在這張圖上的x,y座標
也用了boolean記錄這個座標位置上有沒有換圖
現在卡在我要點有換圖的格子判斷從那個座標往其他方向的格子有無換圖,有的畫就繼續判斷牠旁邊的格子!
請問有甚麼比較簡化的程式碼~
而且還要判斷有無超出邊界等等...
有沒有甚麼方向可以推薦~
無名氏15/11/02(一)06:57 ID:yndVAyzoNo.11079
類似踩地雷那樣的擴散效果?

void check(int x,int y)
{
if(x<0||y<0||x>=5||y>=5||!changed[x][y])
return;
//處理
changed[x][y]=false;
const int dx[]={0,0,-1,1};
const int dy[]={1,-1,0,0};
for(int i=0;i<4;i++)
check(x+dx[i],y+dy[i]);
}


這樣子應該可以吧
無名氏: 謝謝大大~原來這麼容易~!我自己把它再轉成JAVA~ (XKZFOOsU 15/11/02 21:05)

哪一種程式語言當主要學習比較好?無名氏15/08/14(五)02:53 ID:BjnKA7CENo.10965[回應]
請教一下各位島民
1. JAVA, PHP, Python哪一種程式語言當主要學習比較好
可以的話是都想學,可是之前有人說要先專精其中一種語言
對學習其他語言比較有幫助
2. 如果要準備面試的作品,什麼樣的作品會比較適合?
懇請各位指教
有回應 2 篇被省略。要閱讀所有回應請按下回應連結。
無名氏15/08/16(日)09:31 ID:BrcJN/9gNo.10970
PHP簡單易懂,如果無任何基礎可以先玩玩看,壓力比較小,成就感比較高
JAVA也不難學,但比較搞剛,需要多一點的時間上手
Python也蠻容易的,但台灣不知為何企業用的不多

三種都可以做網站
PHP是專為網站應用程式而生的,所以其它方面不太行
JAVA還可以做其它的,桌面程式、Android都可,但框架有差異
Python可以用的地方也很多,但台灣普及率就是不及JAVA和PHP

作品嗎?就業取向的話就...
PHP -> 一個使用任何一種 Framework 的小型商務網站,例如購物網、交友網或是討論區
JAVA -> Android APP,最好有上架的
Python -> 一樣商務網站,或是桌面小程式(簡單的日記之類的?)

https://kheresy.wordpress.com/2014/03/21/moe-program-language-part1/
https://kheresy.wordpress.com/2014/03/22/moe-program-language-part2/
這個可以參考 XDDD
無名氏15/08/16(日)10:55 ID:.qun8G66No.10971
python超好用
raspberry pi也支援python
想要轉搞硬體也不用學C
java也不錯用
而php... 就算了...
學php倒不如學ruby
無名氏: 就rpi才python,其他硬體還是C,不過我玩rpi的時候剛好在學java就順便用java玩rpi (YlEx5GD2 15/08/16 13:12)
無名氏: Intel Edison, wrtnode, cubieboard (dUH0NErU 15/08/18 05:41)
無名氏: PHP沒有不好阿 找工作很容易 Ruby反而台灣不好找 (kqek9hxo 15/08/21 19:02)
無名氏15/08/17(一)19:41 ID:o.D8TRTgNo.10973
感謝各位的回應 讓我學習到很多東西

有點好奇程式語言要學到什麼程度才能到業界找工作?
程式解題有些題目我還是解不出來,資料結構也不是很熟...
物件導向目前也在學習中,希望能全部弄懂呀
無名氏: 程式語言只是輔助,主要看你到哪個領域,去學該領域的東西 (NMQdnJiA 15/08/17 20:41)
無名氏: 以前網路上看到的某句話.. (NMQdnJiA 15/08/17 20:54)
無名氏: 修車徒弟問師傅, "師傅啊我螺絲起子要操作多久才可以出師啊?" (NMQdnJiA 15/08/17 20:54)
無名氏: 學歷夠就會有人高薪請你,這行比較看重的是你學新技術的資質 (qlHnqVCo 15/08/19 00:40)
無名氏: 頂著高學歷但同樣的問題教好幾遍還不記住也是很顧人怨的 (Vnfu5m6E 15/08/19 01:52)
無名氏15/11/01(日)22:49 ID:VOirs/wQNo.11077
現在來說以c與java市占率佔據主流~先專心一種語言其他就會學比較快了~以新手來講可以先學java比較有助於快速開發!
無名氏15/11/02(一)00:46 ID:V//DKbOcNo.11078
請教個問題
如果要以java為就業目標,面試時的作品該寫怎樣的東西好呢?
無名氏: 以Struts或Spring MVC框架加Hibernate ORM的作品 (hGN1hJdQ 15/11/02 10:54)

檔名:1446269449452.jpg-(18 KB, 230x230)
18 KB
無標題無名氏15/10/31(六)13:30 ID:CUaBjumUNo.11075[回應]
無內文

無標題無名氏15/10/21(三)10:51 ID:RZUc2pUwNo.11070[回應]
http://www.codedata.com.tw/book/java-basic/index.php?p=ch11-2

我在Eclipse運行這個網站的GCDFinder實例時
出現了

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at GCDFinder.main(GCDFinder.java:13)

請問是為什麼?

public class GCDFinder{
public int gcdOf(int m, int n){
int r;
while (n != 0){
r = m % n;
m = n;
n = r;
}
return m;
}

public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);

GCDFinder finder = new GCDFinder();
System.out.println(a + ", " + b +
" 最大公因數: " + finder.gcdOf(a, b));
}
}

無名氏: 你有給它參數嗎 (mtIe.IqY 15/10/21 11:48)
無名氏: 還是引數 (mtIe.IqY 15/10/21 11:52)
無名氏: args[0] 不存在 (/vjMgnO2 15/10/23 21:11)

MFI認證無名氏15/10/19(一)23:13 ID:pT3yGyy6No.11069[回應]
請問如果我想用IOS APP程式去控制藍芽鍵盤的開關電源或燈源閃爍
(但藍芽裝置開啟與連線後即不做任何動作)

是不是該藍芽裝置一定要有過Mfi認證呢?
還是有什麼方法可以控制呢?謝謝

檔名:1445090002938.jpg-(303 KB, 1048x998)
303 KB
Eclipse標籤(?)亂碼無名氏15/10/17(六)21:53 ID:nWuHnrfsNo.11068[回應]
Eclipse版本 Kepler SR2
appearance theme選擇了Dark Juno
但是重開Eclipse之後就會標籤變成亂碼,調回預設就變回正常顯示
請問島民有沒有推薦的黑色appearance theme?
無名氏: 大概是該theme採用的字型不合適吧,如果改的動字型應該就解決了 (tDMNJcDA 15/10/17 21:58)
無名氏: 改用Eclipse Moonrise UI Theme重開之後就沒亂碼了 (nWuHnrfs 15/10/17 22:48)

檔名:1444559066478.jpg-(101 KB, 595x1057)
101 KB
遊戲引擎無名氏15/10/11(日)18:24 ID:ow8fDwIkNo.11062[回應]
各位太太我是以前學程式的但學生時期太混沒學的很深入,後來工作不是走程式方面的就荒癈下來了,最近考慮了一下將來打算強化程式能力找相關工作。

目前考慮想走遊戲業查了一下資料,市面上有兩款比較常見的引擎其中比較多人推的是unity,想打算從這邊切入。

請問學程式去外面的聯x或巨x學合適嗎??有點想自己買書來學就好,但又怕程度太差。

看了幾本書請問有那一本比較推的嗎?
http://www.books.com.tw/products/0010633009
http://www.books.com.tw/products/CN11218154
http://goods.ruten.com.tw/item/show?21450952988317

本身會一點3d的基礎,應該能自己製造物件來用,反正主要是練程式出來。再請問如果想進遊戲公司,除了遊戲引擎還需要學什麼嗎??
無名氏: 去科技業吧 遊戲業已死 (GoDCEfRo 15/10/26 12:45)
無名氏15/10/11(日)20:38 ID:djCLeXaMNo.11063
無論如何
不要進遊戲業
那裡什麼也沒有
先有一份好工作才有機會去製作自己的遊戲
無名氏: 嗯...看來遊戲業真的很黑啊...,那請問以新手來說適合準備什麼樣的程式作品比較好呢? (ow8fDwIk 15/10/11 20:51)
無名氏: 用c++寫一個完整的點餐系統之類的這樣可以嗎? (ow8fDwIk 15/10/11 20:51)
無名氏: 我以前履歷附上一個單機連線的戰略遊戲,但是從來沒有哪個公司看過 (djCLeXaM 15/10/11 21:16)
無名氏: 學生等級的作品真的沒啥參考價值,入行新手不大可能用作品加分 (djCLeXaM 15/10/11 21:19)
無名氏: >djCLeXaM :這樣沒有準備方向,那就是練到什麼樣的東西都做的出來就直能硬著頭皮去投覆歷嗎? (ow8fDwIk 15/10/11 21:28)
無名氏: 看來我還是直接買本書先開始學再說好了,剛剛查了一下先學c#似乎是個不錯的方向? (ow8fDwIk 15/10/11 21:29)
無名氏: 別浪費時間,低薪賣肝就能錄取,立刻進去看看熱情能燒多久 (djCLeXaM 15/10/11 21:45)
無名氏: >djCLeXaM:哈哈哈,我有心裡準備新人剛開始賣肝會賣很兇,不過我沒寫程式太久了還是要先會點東西 (ow8fDwIk 15/10/11 22:03)
無名氏15/10/12(一)07:36 ID:a8BW4Q1ENo.11065
>用c++寫一個完整的點餐系統之類的這樣可以嗎?
有點東西勝過什麼都沒有,不過我建議你還是參與領域相關的開源項目比較有用,如果想搞圖像辨識可以嘗試參與opencv的開發
如果想玩convolution neural network可以考慮caffe
如果想投入svm可以考慮libsvm
如果想學習deep learning或編寫其他新鮮的機器學習算法可以試試mlpack
如果想開發app可以考慮Qt
如果想對標準盡一份力可以考慮投入boost的懷抱
這可以保證你會學到很多東西,也可以為自己的履歷加分

這一行嚴峻的地方是經驗不等於實力,不要以為做的久了就一定比較厲害,要記得時刻更新自己,更別忘了穩固基礎功,有太多2x年經驗的老鳥別說自我更新,連基本的資料結構和演算法都學不好
無名氏: 想請教一下 如果是走JAVA系的話 可以往什麼方向發展? (MmwUI/nM 15/10/12 14:58)
無名氏: 就我知道的,網頁很像是主流,其次是嵌入式系統的應用程式開發吧。 (T6AabYMU 15/10/14 23:31)
無名氏15/10/12(一)07:59 ID:a8BW4Q1ENo.11066
順便問一下,你所謂完整的點餐系統是怎樣的一個系統?

有沒有圖形界面?能不夠手動增加餐飲的種類?不同電腦之間的資料能不能夠進行同步?傳送資料時你要如何對資料保密(ssl?)?
資料庫要用哪一種?資料庫的資料是否有提供加密的功能?如果有,用什麼加密?是否有對資料做統計的功能?例如列出本年,本月,本日最受歡迎的餐點,列表顯示各家店面的狀況等等
無名氏15/10/12(一)14:28 ID:LhSzfpIANo.11067
那兩家出來也只是會碰介面而已
資策會出來是至少會打一點code
但是結果是一樣的>找不到工作

除非你要上的是資策會的菁英班
不過那要十萬

當然也可能是我們這屆比較弱啦
真想找的話你會連結google商店的廣告嗎
或是用(風桶)的連線呢(忘記怎麼拚)
這兩個會的話篩選就比較有機會
無名氏: 資策會努力一點怎可能找不到工作...太混當然無法阿 (d5rzWxaI 15/10/13 11:34)
無名氏: 我在蛋糕店工作。同專案內的程式新人有三成來自資策會。 (PJxuc6sk 15/10/18 21:11)
無名氏: 不管去哪裡,自己努力+團隊合作才是正途,同個班裡有人結訓拿超過五個 offer,也有人做不出專題。 (PJxuc6sk 15/10/18 21:17)

檔名:1444572275893.png-(383 KB, 600x600)
383 KB
openCV的VideoWriter無名氏15/10/11(日)22:04 ID:c9EujC3QNo.11064[回應]
不好意思 整個程式跑完後輸出的檔案甚麼都沒有...
是我writer<<bgr寫錯位置還是waitkey那邊要改掉?

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>


using namespace std;
using namespace cv;

Mat g_srcImage, g_dstImage;
int g_constastValue;

int main()
{

VideoCapture capture("D:/hw1.avi");
VideoWriter writer("process.avi", CV_FOURCC('F', 'L', 'V', '1'), 25.0, Size(640, 800));
if (!capture.isOpened())
cout << "fail to open!" << endl;
long totalFrameNumber = capture.get(CV_CAP_PROP_FRAME_COUNT);
cout << "整個影片共" << totalFrameNumber << "帧" << endl;


long frameToStart = 300;
capture.set(CV_CAP_PROP_POS_FRAMES, frameToStart);
cout << "從第" << frameToStart << "帧開始讀" << endl;


int frameToStop = totalFrameNumber;

if (frameToStop < frameToStart)
{
cout << "結束帧小於開始帧" << endl;
return -1;
}
else
{
cout << "結束帧為" << frameToStop << "帧" << endl;
}


double rate = capture.get(CV_CAP_PROP_FPS);
cout << "fps為:" << rate << endl;


g_constastValue = 50;
bool stop = false;
Mat frame;
/*namedWindow("Extracted frame");
createTrackbar("對比度", "Extracted frame", &g_constastValue, on_contrast);*/
int delay = 1000 / rate;


long currentFrame = frameToStart;

int kernel_size = 3;
Mat kernel = Mat::ones(kernel_size, kernel_size, CV_32F) / (float)(kernel_size*kernel_size);

while (!stop)
{

if (!capture.read(frame))
{
cout << "讀取失敗" << endl;
return -1;
}


imshow("Extracted frame", frame);
/*filter2D(frame, frame, -1, kernel);

imshow("after filter", frame);*/
cout << "正在讀取" << currentFrame << "帧" << endl;

//////hsv
Mat hsv;
Mat dst;
cvtColor(frame, hsv, CV_BGR2HSV);///convert frame from BGR to HSV
namedWindow("hsv", 1);
imshow("hsv", hsv);
vector<Mat>mvhsv;////build a vector to store 'h''s''v' channel
split(hsv, mvhsv);////split the whole video to 3 channels
namedWindow("H", 1);
namedWindow("S", 1);
namedWindow("V", 1);
imshow("H", mvhsv[0]);
imshow("S", mvhsv[1]);
imshow("V", mvhsv[2]);

equalizeHist(mvhsv[2], mvhsv[2]);///equalize(to make the contrast higher) the 'v'channel

merge(mvhsv, dst);///merge the three channel together

namedWindow("HSV Constrast", 1);
imshow("HSV_Contrast", dst);
////////hsv_END///////
///////hsv2bgr+ output/////
Mat bgr;
Mat dst2;
cvtColor(dst, bgr, CV_HSV2BGR);///////convert the video back
filter2D(bgr, bgr, -1, kernel);
namedWindow("constast window 2", 1);
imshow("constast window 2", bgr);
writer << bgr;
//////END//////
/*
vector<Mat>mv;
split(frame, mv);
namedWindow("R", 1);
namedWindow("G", 1);
namedWindow("B", 1);
imshow("R", mv[0]);
imshow("G", mv[1]);
imshow("B", mv[2]);*/

/*for (int i = 0; i < 3; i++){
cvtColor(mv[i], mv[i], CV_BGR2GRAY);
}
for (int i = 0; i < 3; i++){
equalizeHist(mv[i], mv[i]);
}
merge(mv, frame);
namedWindow("contrast window 2", 1);
imshow("constast window2", frame);*/
//////////////////////////////////

/////My Method to equalize Frame by reading col&rows&channel ane multi g_contrastvalue(the value i made on the top)///////
/*
g_constastValue = 300;
for (int y = 0; y < frame.rows; y++){
for (int x = 0; x < frame.cols; x++){
for (int c = 0; c < 3; c++){
frame.at<Vec3b>(y, x)[c] = saturate_cast<uchar>((g_constastValue*0.01)*(frame.at<Vec3b>(y, x)[c]));
}///saturate_cast : to prevent data overflow
}
}
filter2D(frame, frame, -1, kernel);
imshow("constrast frame 1", frame);*/
//////END////////
int c = waitKey(delay);

if ((char)c == 27 || currentFrame > frameToStop)
{
stop = true;
}

if (c >= 0)
{
waitKey(0);
}
currentFrame++;

}
capture.release();
waitKey(0);
return 0;
}
無名氏: 把問題po在pastebin好嗎?很難讀 (a8BW4Q1E 15/10/12 07:37)
無名氏: 總覺得這種問題和程式碼沒關係阿... 先弄個Hello World吧? 能正常動再把功能慢慢加進去 (E3eTU8XU 15/10/12 14:02)
無名氏: 額...imshow是可以跑出影片的 只是用videowriter作的新檔案什麼都沒有 (gTmrufu6 15/10/12 17:13)
無名氏: 真應該推廣gist或pastebin (3.dTnDkE 15/10/13 11:35)
無名氏: 不熟這東西,不過如果你確定輸出前資料正常,會不會是writer沒關閉?有close之類的函式嗎? (eI1m7ivo 15/10/15 18:53)
無名氏: 寫在while裡面所以應該是沒問題 (Mjd0it6o 15/10/19 22:14)

檔名:1444403524641.png-(294 KB, 950x1489)
294 KB
無標題無名氏15/10/09(五)23:12 ID:pL2WPpeYNo.11053[回應]
學C#也快學三個月了
三個月前剛開始真的甚麼都不懂, 邊看書邊實作邊學, 但過程真的氣死我了
弄form的時候, 刪除控制項方法也要給我錯誤(那個時候我還沒完全學會事件, 而且要我動手刪除VS自動產生的編碼...當時我哪敢)
弄自己的控制項(UserControl)的時候, 自己寫的編碼和弄控制項而自動產生的編碼互相影響, 因而出錯誤, 還說一堆讓人聽不懂的術語, 根本無法debug(那時候我以為自己已經玩完了)
多執行緒吃掉我的Exception, 然後x64又吃掉我的Exception.
控制項的databinding要是用別的執行緒事件來刺激會出Exception, 那你還提供甚麼databinding啦, 不夠完善之餘還封住了背後的運作, 如果被吃掉又沒發現的話debug就有夠受的...

結果棄用了. 還是自己在property直接寫事件了結, 每個欄位改成property再寫事件, 真的超煩,

原本能自己建thread又弄個甚麼task, 書裡只講完task的用法結果自己還是要查threading的底層概念才真正明白, 根本不會寫threading就不會懂得寫這些打包好的東西, 那打包是為了幫我省幾句編碼嗎? 如果你說是為了活用CPU的所有內核, 那你在threading裡改不就好了嗎?

檔案系統超級複雜, 連幫solution改個名字也超級難, 想把寫好的東西打包好提供給別個solution... 問題多得差點瘋了

我受夠了啦!!!!
(結果因為老闆要求, 還是乖乖用下去...)
無名氏15/10/10(六)02:08 ID:uHQ/rcSsNo.11055
抱歉我看不太懂你在抱怨什麼..

>控制項的databinding要是用別的執行緒事件來刺激會出Exception,
>那你還提供甚麼databinding啦
你可以去查關鍵字Invoke,我想能解決你的問題
我個人是覺得搞出一個Delegate來解決thread-safe的問題其實很好用
也很符合OO的思想

>原本能自己建thread又弄個甚麼task
Task超好用的我勸你別嗆他ㄛ= =

我大概也可以理解為什麼書裡只想講task
他好學,可以做的事情多,不用管太多例外
重點是簡單的同步寫起來跟 Javascript 一樣好寫,不用處理 thread pool 潮爽的
講這樣優勢就蠻明顯了吧?

>根本不會寫threading就不會懂得寫這些打包好的東西
我可以很老實告訴你
根本不會寫 threading去處理 threadpool/async/mutex 之類的問題才會瘋掉
這東西很吃經驗,沒de過幾次bug很難知道thread要怎麼寫才會安全

如果你是從別的語言跳過來的...那麼你去msdn查一下prototype和範例程式應該馬上知道怎麼寫吧

我以前是POSIX/WIN32API派的,個人是覺得C#還蠻好入門的
倒是C++.net我永遠沒辦法接受...
無名氏15/10/10(六)17:25 ID:APsFNMecNo.11061
檔名:1444469112118.jpg-(43 KB, 640x512)
43 KB
>> No.11055
我當然知道Invoke, 但Invoke是控制項用的吧
背後的資料類別又不是控制項, 哪來的Invoke方法, 改資料的時候又不知道它會影響哪個control, 結果還是要我先讓控制項訂閱資料事件, 再Invoke, 而不能在控制項裡用Databindings連結資料類別的PropertyChanged事件

task本來就是用threadpool吧, 而且long running選項甚麼的, 你沒學過寫thread最好是能分清甚麼時候用啦, 結果還不是要先學thread的用法再用task, 打包大-失-敗
async方面, 我看的兩本書兩個網頁都是未講thread和task就先講async, 超扯。沒task的底子哪會懂, 然後我去查msdn更加是看不懂, 聲稱教我"寫自己的async" 結果根本是只是回傳它本來async提供的task, 而不是自己建立task,

其實msdn裡面寫的例子也是超級差, 很多時候一個例子用在幾個條目上, 根本很難找到自己想要學的部份 (因為幾部份內容都混在一起了)
你知道當初我想走入多執行緒的大門時, 看這一頁多痛苦嗎:https://msdn.microsoft.com/en-us/library/hh191443.aspx
最好是馬上就懂啦(翻桌
我花了一整個下午才看完

程式語言我也是才學了不到半年
我覺得C#很多類別只是看起來讓人容易上手, 當真正提出細緻的要求時, 還是要直接重學類別裡面隱藏了的東西, 之前學的就自然白學了

好吧..其實我是很謝謝你把我全部的牢騷看完wwwww
無名氏: 從async開始教很正常啊,這比較high level,需要了解的細節最少 (EsrbbkLI 15/10/11 02:32)
無名氏: 會用到thread都是比較low level的操作,沒事少用 (EsrbbkLI 15/10/11 02:33)

【刪除文章】[]
刪除用密碼:
[0] [...][7] [8] [9] [10] [11] [12] [13] [14] []