- 11月 23 週三 202210:03
GStreamer安裝測試
- 11月 28 週日 202116:37
An Android Gridview Example

1. add a button in activity_main.xml
2. Add a new layout of gridview page, which is called activity_gridview.xml
- 11月 26 週五 202119:33
How to Add and Android Activity Manually

Add a new package
The new package's name is mylistview
A good introduction to those who want to understand the differences between MIT, GPL, LGPL licenses.
- 4月 04 週六 202007:34
Installing Git for Windows v2.26.0

Downloading Git for Windows
- 4月 18 週三 201807:51
SQL Server 2017 Express Edition Installation

SQL Server 2017 Express Edition 下載
- 2月 05 週日 201721:30
Eclipse環境下使用OpenCV3.1調整影像對比

選擇Application WindowApplication Name: AdjContrastDemoLayout: Absolute layout新增兩組JSlider元件新增兩個static變數 alpha、beta完整原始碼
1: package Basic;
2: 3: import java.awt.EventQueue;
4: import java.awt.image.BufferedImage;
5: 6: import javax.swing.ImageIcon;
7: import javax.swing.JFrame;
8: import javax.swing.JOptionPane;
9: import javax.swing.JSlider;
10: import javax.swing.JLabel;
11: import javax.swing.event.ChangeListener;
12: import javax.swing.event.ChangeEvent;
13: 14: import org.opencv.core.Core;
15: import org.opencv.core.Mat;
16: import org.opencv.imgcodecs.Imgcodecs;
17: import org.opencv.imgproc.Imgproc;
18: 19: public class AdjContrastDemo {
20: static{System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}
21: private JFrame frmContrastAdjustment;
22: static double alpha = 1;
23: static double beta = 50;
24: JSlider slider; 25: JSlider slider_1; 26: JLabel lblAlphaVal; 27: JLabel lblBetaVal; 28: JLabel lblImage;29: static Mat imgSrc;
30: static Mat imgG = new Mat();
31: static Mat imgDst = new Mat();
32: /**
33: * Launch the application.
34: */
35: public static void main(String[] args) {
36: EventQueue.invokeLater(new Runnable() {
37: public void run() {
38: try {
39: //imgSrc = Imgcodecs.imread("C:\\OpenCV\\images\\left01.jpg");
40: imgSrc = Imgcodecs.imread("C:\\OpenCV\\images\\lena.jpg");
41: if(imgSrc.empty())
42: {43: JOptionPane.showMessageDialog(null, "無法讀取圖片","警告",
44: JOptionPane.WARNING_MESSAGE); 45: }46: if(imgSrc.channels()==3)
47: imgSrc.copyTo(imgG);48: //Imgproc.cvtColor(imgSrc, imgG, Imgproc.COLOR_BGR2GRAY);
49: else
50: imgSrc.copyTo(imgG);51: //imgDst = new Mat();
52: AdjContrastDemo window = new AdjContrastDemo();
53: window.frmContrastAdjustment.setVisible(true);54: } catch (Exception e) {
55: e.printStackTrace(); 56: } 57: } 58: }); 59: } 60: 61: /**
62: * Create the application.
63: */
64: public AdjContrastDemo() {
65: initialize(); 66: } 67: 68: /**
69: * Initialize the contents of the frame.
70: */
71: private void initialize() {
72: frmContrastAdjustment = new JFrame();
73: frmContrastAdjustment.setTitle("Contrast Adjustment");
74: frmContrastAdjustment.setBounds(100, 100, 725, 692); 75: frmContrastAdjustment.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 76: frmContrastAdjustment.getContentPane().setLayout(null); 77: 78: slider = new JSlider();
79: slider.setValue((int)alpha);
80: slider.addChangeListener(new ChangeListener() {
81: public void stateChanged(ChangeEvent arg0) {
82: lblAlphaVal.setText(slider.getValue()+"");
83: alpha = slider.getValue(); 84: AdjustContrast(); 85: } 86: }); 87: 88: slider.setBounds(125, 40, 370, 19); 89: frmContrastAdjustment.getContentPane().add(slider); 90: 91: slider_1 = new JSlider();
92: slider_1.setValue((int)beta);
93: slider_1.addChangeListener(new ChangeListener() {
94: public void stateChanged(ChangeEvent arg0) {
95: lblBetaVal.setText(slider_1.getValue()+"");
96: beta = slider_1.getValue(); 97: AdjustContrast(); 98: } 99: }); 100: slider_1.setBounds(125, 90, 370, 19); 101: frmContrastAdjustment.getContentPane().add(slider_1); 102: 103: JLabel lblAlpha = new JLabel();
104: lblAlpha.setText("alpha");
105: lblAlpha.setBounds(55, 29, 71, 36); 106: frmContrastAdjustment.getContentPane().add(lblAlpha); 107: 108: JLabel lblBeta = new JLabel();
109: lblBeta.setText("beta");
110: lblBeta.setBounds(55, 80, 71, 36); 111: frmContrastAdjustment.getContentPane().add(lblBeta); 112: 113: lblAlphaVal = new JLabel("0");
114: lblAlphaVal.setBounds(499, 29, 55, 36);115: lblAlphaVal.setText(""+alpha);
116: frmContrastAdjustment.getContentPane().add(lblAlphaVal); 117: 118: lblBetaVal = new JLabel("0");
119: lblBetaVal.setBounds(499, 80, 55, 36);120: lblBetaVal.setText(""+beta);
121: frmContrastAdjustment.getContentPane().add(lblBetaVal); 122: 123: lblImage = new JLabel("");
124: lblImage.setBounds(31, 154, 587, 467); 125: frmContrastAdjustment.getContentPane().add(lblImage); 126: }127: public void AdjustContrast()
128: { 129: imgG.convertTo(imgDst, -1, alpha, beta); 130: BufferedImage bufImg = matToBufferedImage(imgDst);131: lblImage.setIcon(new ImageIcon(bufImg));
132: }133: public BufferedImage matToBufferedImage(Mat matrix){
134: int cols = matrix.cols();
135: int rows = matrix.rows();
136: int elemSize = (int)matrix.elemSize();
137: byte[] data = new byte[cols*rows*elemSize];
138: if(matrix.channels()==3)
139: Imgproc.cvtColor(matrix, matrix, Imgproc.COLOR_BGR2RGB); 140: matrix.get(0, 0, data); 141: BufferedImage bufImg = null;142: switch(matrix.channels())
143: {144: case 1:
145: bufImg = new BufferedImage(cols, rows, BufferedImage.TYPE_BYTE_GRAY);
146: break;
147: case 3:
148: bufImg = new BufferedImage(cols,rows, BufferedImage.TYPE_3BYTE_BGR);
149: break;
150: } 151: bufImg.getRaster().setDataElements(0, 0, cols, rows, data);152: return bufImg;
153: } 154: }- 2月 05 週日 201715:32
Eclipse環境下使用OpenCV3.1讀取及顯示影像

OpenCV Mat格式轉 Java BufferedImage格式
1: public BufferedImage matToBufferedImage(Mat matrix){
2: int cols = matrix.cols();
3: int rows = matrix.rows();
4: int elemSize = (int)matrix.elemSize();
5: byte[] data = new byte[cols*rows*elemSize];
6: matrix.get(0, 0, data); 7: BufferedImage bufImg = null;8: switch(matrix.channels())
9: {10: case 1:
11: bufImg = new BufferedImage(cols, rows, BufferedImage.TYPE_BYTE_GRAY);
12: break;
13: case 3:
14: bufImg = new BufferedImage(cols,rows, BufferedImage.TYPE_3BYTE_BGR);
15: break;
16: } 17: bufImg.getRaster().setDataElements(0, 0, cols, rows, data);18: return bufImg;
19: }- 2月 04 週六 201709:54
Eclipse下設定OpenCV 3.1開發環境

輸入library名稱點選OpenCV3.1,按下Add External JARs。事先解壓縮OpenCV3.1, 選擇build資料夾下java選擇opencv-310Native library location 滑鼠雙擊或 Edit 進入編輯我的Eclipse安裝x86,所以選x86。原本以為是電腦的作業系統為主,我的電腦是x64,但安裝x64版本到後面步驟就掛掉…設定好如下所示:來寫一個OpenCV範例選取User Library,按下Next勾選OpenCV3.1,按下Finish。
- 2月 04 週六 201708:48
在Eclipse開發視窗程式 slider控制元件

接續上一個project新增JSlider至frame加入slider拖拉事件Run( 或按下CTRL+F11)

