//* BUTTON_CONVERT *// private void button_Convert_Click(object sender, EventArgs e) { IplImage tempImgBox; Took3D.SET_Z = Int32.Parse(textBox_SetZ.Text); if (isImgOpen == true) { switch (currentMode) { // <<DEFAULT>> case Mode.DEFAULT: // 흰색 윤곽선 추가. tempImgBox = new IplImage(imgBox.Width + 10, imgBox.Height + 10, BitDepth.U8, 1); imgBox.CopyMakeBorder(tempImgBox, new CvPoint(5, 5), BorderType.Constant, CvScalar.ScalarAll(0xFF)); // 모델링 Took3D.START(tempImgBox); if (radioButton_Polygon.Checked == true) { bool checkBottomMode = Took3D.bottomPolygon(); if (checkBottomMode == false) { radioButton_Background.Checked = true; } Took3D.binarySTL_Bottom(); } else if (radioButton_Background.Checked == true) { Took3D.bottomBackground(); Took3D.binarySTL_BackBottom(); } else { Took3D.binarySTL(); } break; // <<STAMP>> case Mode.STAMP: tempImgBox = mode_Stamp(imgBox); Took3D.START(tempImgBox); Took3D.stampModeling(); Took3D.binarySTL_BackBottom(); break; // <<DOT>> case Mode.DOT: // 1. 크기조정 tempImgBox = Dot_Resize(imgBox); // 2. 이미지 확대 ( 도트 원형 유지 ) IplImage dot_tmp = new IplImage(tempImgBox.Width * 10, tempImgBox.Height * 10, tempImgBox.Depth, tempImgBox.NChannels); tempImgBox.Resize(dot_tmp, Interpolation.Cubic); tempImgBox.Dispose(); // 3. 도트 이미지 생성 tempImgBox = mode_Dot(dot_tmp); dot_tmp.Dispose(); // 4. 흰색윤곽추가 dot_tmp = new IplImage(tempImgBox.Width + 4, tempImgBox.Height + 4, tempImgBox.Depth, tempImgBox.NChannels); tempImgBox.CopyMakeBorder(dot_tmp, new CvPoint(2, 2), BorderType.Constant, CvScalar.ScalarAll(0xFF)); tempImgBox = dot_tmp; // 5. 이진화 시작 Took3D.START(tempImgBox); Took3D.binarySTL(); break; // <<RING>> case Mode.RING: tempImgBox = mode_Ring(imgBox); Took3D.START(tempImgBox); Took3D.binarySTL(); break; default: break; } pictureBox.ImageIpl = Took3D.resultImage; //Console.WriteLine("minX : {0} minY : {1} maxX : {2} maxY : {3}", Took3D.minX, Took3D.minY, Took3D.maxX, Took3D.maxY); // 파일 저장 처리 saveFileDialog1.Filter = "STL File(*.stl)|*.stl"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { FileInfo file = new FileInfo(@"C:\TookTemp\output"); if (file.Exists) { File.Copy(@"C:\TookTemp\output", saveFileDialog1.FileName, true); MessageBox.Show("완료"); } } //tempImgBox.Dispose(); } else { MessageBox.Show("이미지를 선택해주세요!"); } }