import java.awt.AWTException;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.List;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.Timer;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.highgui.Highgui;
import org.opencv.highgui.VideoCapture;
import org.opencv.imgproc.Imgproc;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author sony
*/
public class MainFrame extends javax.swing.JFrame {
/**
* Creates new form MainFrame
*/
// FacePanel facePanel = new FacePanel();
Graphics g;
Graphics g1;
BufferedImage image;
Thread t = null;
Thread t1 = null;
boolean threadDurum = false;
VideoCapture webCam = null;
Mat element;
int sayac ;
Mat thresholded;
Robot robot;
public MainFrame() {
initComponents();
element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT,new Size(3,3));
g = jPanel1.getGraphics();
g1 = jPanel2.getGraphics();
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if (webCam!=null&&webCam.isOpened()) {
t.stop();
webCam.release();
t.interrupt();
}
System.exit(0);
}
});
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
jSliderValueLabelHmin = new javax.swing.JLabel();
jSliderSmin = new javax.swing.JSlider();
jSliderValueLabelSmin = new javax.swing.JLabel();
jSliderVmin = new javax.swing.JSlider();
jSliderValueLabelVmin = new javax.swing.JLabel();
jSliderHmax = new javax.swing.JSlider();
jSliderSmax = new javax.swing.JSlider();
jSliderVmax = new javax.swing.JSlider();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jSliderHmin = new javax.swing.JSlider();
jPanel2 = new javax.swing.JPanel();
jButton2 = new javax.swing.JButton();
jTextFieldEkranYaz = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("CAMOn");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 640, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 480, Short.MAX_VALUE)
);
jSliderValueLabelHmin.setText("H min");
jSliderSmin.setMajorTickSpacing(40);
jSliderSmin.setMaximum(255);
jSliderSmin.setMinorTickSpacing(1);
jSliderSmin.setPaintLabels(true);
jSliderValueLabelSmin.setText("S min");
jSliderVmin.setMajorTickSpacing(40);
jSliderVmin.setMaximum(255);
jSliderVmin.setMinorTickSpacing(1);
jSliderVmin.setPaintLabels(true);
jSliderValueLabelVmin.setText("V min");
jSliderHmax.setMajorTickSpacing(20);
jSliderHmax.setMaximum(179);
jSliderHmax.setMinorTickSpacing(1);
jSliderHmax.setPaintLabels(true);
jSliderSmax.setMajorTickSpacing(40);
jSliderSmax.setMaximum(255);
jSliderSmax.setMinorTickSpacing(1);
jSliderSmax.setPaintLabels(true);
jSliderVmax.setMajorTickSpacing(40);
jSliderVmax.setMaximum(255);
jSliderVmax.setMinorTickSpacing(1);
jSliderVmax.setPaintLabels(true);
jLabel3.setText("H max");
jLabel4.setText("S max");
jLabel5.setText("V max");
jSliderHmin.setMajorTickSpacing(20);
jSliderHmin.setMaximum(179);
jSliderHmin.setMinorTickSpacing(1);
jSliderHmin.setPaintLabels(true);
jPanel2.setBackground(new java.awt.Color(255, 255, 255));
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 640, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 480, Short.MAX_VALUE)
);
jButton2.setText("CAMOff");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton2))
.addComponent(jTextFieldEkranYaz, javax.swing.GroupLayout.PREFERRED_SIZE, 263, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jSliderSmin, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSliderVmin, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSliderHmax, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSliderSmax, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSliderVmax, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSliderHmin, javax.swing.GroupLayout.PREFERRED_SIZE, 271, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel5)
.addComponent(jLabel4)
.addComponent(jLabel3)
.addComponent(jSliderValueLabelHmin)
.addComponent(jSliderValueLabelSmin)
.addComponent(jSliderValueLabelVmin))
.addContainerGap(61, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(45, 45, 45)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jSliderValueLabelHmin)
.addComponent(jSliderHmin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jSliderSmin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(27, 27, 27)
.addComponent(jSliderValueLabelSmin)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jSliderVmin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(30, 30, 30)
.addComponent(jSliderValueLabelVmin)))
.addGap(88, 88, 88)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSliderHmax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(14, 14, 14)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSliderSmax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGap(9, 9, 9)
.addComponent(jLabel4)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jSliderVmax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(27, 27, 27)
.addComponent(jLabel5)))))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(127, 127, 127)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addGap(18, 18, 18)
.addComponent(jTextFieldEkranYaz, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// //GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
try {
robot = new Robot();
}catch(AWTException e){}
t = new Thread(){public void run(){
MatToBufImg matToBufferedImageConverter = new MatToBufImg(); //Utility class to convert Mat to Java's BufferedImage
webCam = new VideoCapture(1);
if (!webCam.isOpened()) {
System.out.println("Kamera Açık DeÄil..!");
}else System.out.println("Kamera Açıldı --> "+webCam.toString());
Mat webcam_image = new Mat(480,640,CvType.CV_8UC3);
Mat hsv_image = new Mat(webcam_image.cols(),webcam_image.rows(),CvType.CV_8UC3);
thresholded = new Mat(webcam_image.cols(),webcam_image.rows(),CvType.CV_8UC3,new Scalar(255, 255, 255));
if (webCam.isOpened()) {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
}
while (true) {
try {
webCam.read(webcam_image);
} catch (Exception e) {
System.out.println("Web Cam Kapalı !");
}
if (!webcam_image.empty()) {
try {
Thread.sleep(10);
} catch (InterruptedException ex) {
}
// Mat inRangeResim = webcam_image.clone();
/*
Mat inRangeResim = webcam_image.clone();
matToBufferedImageConverter.setMatrix(inRangeResim, ".jpg");
image =matToBufferedImageConverter.getBufferedImage();
Highgui.imwrite("D:\\bitirme.jpg", inRangeResim);
*/
// MatOfRect faceDetections = new MatOfRect();
Imgproc.cvtColor(webcam_image, hsv_image, Imgproc.COLOR_BGR2HSV);
//siyah hsv range 0 0 0 - 180 45 100
//hsvmavi Core.inRange(webcam_image, new Scalar(75,63,40), new Scalar(118,255,255), webcam_image);
//rgb mavi // Core.inRange(webcam_image, new Scalar(50,0,0), new Scalar(255,0,0), webcam_image);
//turuncu hsv Core.inRange(webcam_image, new Scalar(5,50,50), new Scalar(15,255,255), webcam_image);
//Core.inRange(webcam_image, new Scalar(80,50,50), new Scalar(140,255,255), webcam_image);
// Core.inRange(webcam_image, new Scalar(29,0,24), new Scalar(30,155,155), webcam_image);
//hsv mavi
// jSliderHmin.setValue(75);
// jSliderSmin.setValue(63);
// jSliderVmin.setValue(40);
// jSliderHmax.setValue(118);
// jSliderSmax.setValue(255);
// jSliderVmax.setValue(255);
//
// jSliderHmin.setValue(0);
// jSliderSmin.setValue(0);
// jSliderVmin.setValue(0);
// jSliderHmax.setValue(179);
// jSliderSmax.setValue(39);
// jSliderVmax.setValue(120);
Core.inRange(hsv_image, new Scalar(jSliderHmin.getValue(),jSliderSmin.getValue(),jSliderVmin.getValue())
, new Scalar(jSliderHmax.getValue(),jSliderSmax.getValue(),jSliderVmax.getValue()), thresholded);
Imgproc.dilate(thresholded,thresholded,element);
Imgproc.erode(thresholded, thresholded, element);
Imgproc.dilate(thresholded,thresholded,element);
Imgproc.erode(thresholded, thresholded, element);
//yeni
matToBufferedImageConverter.setMatrix(thresholded, ".jpg");
image = matToBufferedImageConverter.getBufferedImage();
g1.drawImage(image, 0, 0, webcam_image.cols(),webcam_image.rows(),null);
Core.rectangle(webcam_image,new Point(20, 20), new Point(80,80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(80, 20), new Point(140, 80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(140, 20), new Point(200, 80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(200, 20), new Point(260,80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(260, 20), new Point(320, 80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(320, 20), new Point(380, 80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(380, 20), new Point(440,80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(440, 20), new Point(500, 80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(500, 20), new Point(560, 80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(560, 20), new Point(620, 80), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(20, 80), new Point(80,140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(80, 80), new Point(140, 140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(140, 80), new Point(200, 140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(200, 80), new Point(260,140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(260, 80), new Point(320, 140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(320, 80), new Point(380, 140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(380, 80), new Point(440,140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(440, 80), new Point(500, 140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(500, 80), new Point(560, 140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(560, 80), new Point(620, 140), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(20, 140), new Point(80,200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(80, 140), new Point(140, 200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(140, 140), new Point(200, 200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(200, 140), new Point(260,200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(260, 140), new Point(320, 200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(320, 140), new Point(380, 200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(380, 140), new Point(440,200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(440, 140), new Point(500, 200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(500, 140), new Point(560, 200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(560, 140), new Point(620, 200), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(20, 200), new Point(80,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(80, 200), new Point(140,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(140,200), new Point(200,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(200,200), new Point(260,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(260,200), new Point(320,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(320,200), new Point(380,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(380,200), new Point(440,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(440,200), new Point(500,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(500,200), new Point(560,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(560,200), new Point(620,260), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(20,260), new Point(80,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(80,260), new Point(140,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(140,260), new Point(200,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(200,260), new Point(260,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(260,260), new Point(320,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(320,260), new Point(380,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(380,260), new Point(440,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(440,260), new Point(500,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(500,260), new Point(560,320), new Scalar(0,0,255));
Core.rectangle(webcam_image,new Point(560,260), new Point(620,320), new Scalar(0,0,255));
harfBul();
//
List contours = new ArrayList();
Imgproc.findContours(thresholded, contours, new Mat(),Imgproc.RETR_LIST,Imgproc.CHAIN_APPROX_SIMPLE, new Point(0,0));
Imgproc.drawContours(thresholded, contours,-1, new Scalar(255.0, 255.0, 255.0),5);
for(int i=0; i< contours.size();i++){
// System.out.println(Imgproc.contourArea(contours.get(i)));
// if (Imgproc.contourArea(contours.get(i)) > 1 ){
Rect rect = Imgproc.boundingRect(contours.get(i));
//System.out.println(rect.height);
// if (rect.height > 20 && rect.height <30 && rect.width < 30 && rect.width >20){
// System.out.println(rect.x +","+rect.y+","+rect.height+","+rect.width);
Core.rectangle(webcam_image, new Point(rect.x,rect.y), new Point(rect.x+rect.width,rect.y+rect.height),new Scalar(0,0,255));
// Core.circle(webcam_image, new Point(rect.x+rect.height/2, rect.y+rect.width/2), i, new Scalar(0, 0, 255));
//}
//}
}
// Imgproc.cvtColor(webcam_image, webcam_image, Imgproc.COLOR_HSV2BGR);
// hsv_image.convertTo(hsv_image, CvType.CV_32F);
// Imgproc.Canny(thresholded, thresholded, 10, 20);
// Core.bitwise_and(thresholded, webcam_image, webcam_image);
//ise yarar
// Imgproc.cvtColor(thresholded, thresholded, Imgproc.COLOR_GRAY2BGR);
// Core.bitwise_and(thresholded, webcam_image, webcam_image);
// webcam_image.copyTo(hsv_image, thresholded);
// System.out.println("<------------------------------>");
// System.out.println("BGR: " +webcam_image.channels()+" Size : "+webcam_image.size());
// System.out.println("HSV :"+hsv_image.channels()+" Size: "+hsv_image.size());
// System.out.println("Thresold :"+thresholded.channels()+" Size : "+thresholded.size());
// System.out.println("<------------------------------>");
//
matToBufferedImageConverter.setMatrix(webcam_image, ".jpg");
jSliderValueLabelHmin.setText(String.valueOf(jSliderHmin.getValue()));
jSliderValueLabelSmin.setText(String.valueOf(jSliderSmin.getValue()));
jSliderValueLabelVmin.setText(String.valueOf(jSliderVmin.getValue()));
image =matToBufferedImageConverter.getBufferedImage();
g.drawImage(image, 0, 0,webcam_image.cols(),webcam_image.rows(), null);
}
else{
System.out.println("Görüntü yok!");
break;
}
}
// webCam.release();
}
}};
threadDurum = true;
t.start();
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
if (threadDurum) {
t.stop();
threadDurum = false;
}
}//GEN-LAST:event_jButton2ActionPerformed
public void harfBul(){
sayac = 0;
for (int i = 20; i < 80; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
System.out.println("sayac5 = "+sayac);
if (sayac<3601 && sayac>3500) {
// System.out.println("5555555555555555555555555");
// System.out.println("5555555555555555555555555");
jTextFieldEkranYaz.requestFocusInWindow();
robot.keyPress(KeyEvent.VK_Q);
robot.keyRelease(KeyEvent.VK_Q);
}
sayac = 0;
for (int i = 80; i < 140; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
// System.out.println("sayac = "+sayac);
if (sayac<3601 && sayac>3500) {
// System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAA");
// System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAA");
jTextFieldEkranYaz.setText("W"+jTextFieldEkranYaz.getText());
}
sayac = 0;
for (int i = 140; i < 200; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("E"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
// burdan sillll
sayac = 0;
for (int i = 200; i < 260; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("R"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 260; i < 320; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("T"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 320; i < 380; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("Y"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 380; i < 440; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("U"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 440; i < 500; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("I"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 500; i < 560; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("O"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 560; i < 620; i++) {
for (int j =20; j < 80; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("P"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 20; i < 80; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("A"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 80; i < 140; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("S"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 140; i < 200; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("D"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 200; i < 260; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("F"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 260; i < 320; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("G"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 320; i < 380; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("H"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 380; i < 440; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("J"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 440; i < 500; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("K"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 500; i < 560; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("L"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 560; i < 620; i++) {
for (int j =80; j < 140; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("i"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 20; i < 80; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("Z"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 80; i < 140; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("X"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 140; i < 200; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("C"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 200; i < 260; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("V"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 260; i < 320; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("B"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 320; i < 380; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("N"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 380; i < 440; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("M"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 440; i < 500; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("Ã"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 500; i < 560; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("Ã"+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
sayac = 0;
for (int i = 560; i < 620; i++) {
for (int j =140; j < 200; j++) {
double [] a = thresholded.get(j, i);
// Core.rectangle(webcam_image,new Point(i, j), new Point(i, j), new Scalar(0,0,255));
if (a[0] == 255) {
sayac ++;
}
}
}
if (sayac<3601 && sayac>3500) {
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
// System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBB");
jTextFieldEkranYaz.setText("."+jTextFieldEkranYaz.getText());
}
// System.out.println("sayacB = "+sayac);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MainFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JSlider jSliderHmax;
private javax.swing.JSlider jSliderHmin;
private javax.swing.JSlider jSliderSmax;
private javax.swing.JSlider jSliderSmin;
private javax.swing.JLabel jSliderValueLabelHmin;
private javax.swing.JLabel jSliderValueLabelSmin;
private javax.swing.JLabel jSliderValueLabelVmin;
private javax.swing.JSlider jSliderVmax;
private javax.swing.JSlider jSliderVmin;
private javax.swing.JTextField jTextFieldEkranYaz;
// End of variables declaration//GEN-END:variables
}