Şimdi Ara

C# ile siyah beyaz resmin x,y, kordinatlarını çıkartıp yazdırma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
693
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar amacım vektörel yada normal bir resmin içinden kordinatlarını aldırıp gcode a dönüştürüp dosya olarak kaydetmek, benzerini yapan bir sürü program var ama ben kendim bir tane yapmak istiyorum kendim için mini cnc router ve lazer markalama makinem için ben makine mühendisiyim birazda programlama bilgim var yok değil ama tam bu konuda bi kaynak bulamadım elbet vardır ama ben bulamadım yardımcı olabilcek varsa çok mutlu olurum.

    Yapmak istediğim şey programa resmi atıcam yada autocad dosyasını ve içindeki beyaz yüzeye siyah olan o siyah çizgilerin kordinatını çıkarıcak bana text olarak vericek yani basit bir cnc programı gibi düşünün yapabilirsemde bi tık ilerisi lasergrbl diye bir program var öyle bir program yapmak nedemek istediğimi o programa bakarakta anlıyabilirsiniz.

    Bana hazır kaynak verin demiyorum nelere bakmamlzım ne olarak aratırsam sonuca ulaşabilirim yani yol gösterseniz dahi çok mutlu olurum. Lütfen eleştirmeyin kendimi geliştirmek ve bu konuda bi hobi edinemk istiyorum size çok saçma geldiyse cevap vermiyebilirsiniz teşekkürler.







  • al yazdım birtane siyah beyaz bitmap resmi yükle basit birşey yükle listbox doldurması uzun sürüyor çok büyük resimlerde
    https://s2.dosya.tc/server10/8o2q42/sb.rar.html


    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Windows.Forms;

    namespace sb
    {

    public partial class MainForm : Form
    {
    static List<Point> koordinatlar = new List< Point >();
    public static List<Point> SiyahBeyazKoordinatAl( Bitmap bitmap)
    {
    unsafe
    {
    koordinatlar.Clear();
    BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadWrite, bitmap.PixelFormat);

    var bytesPerPixel = Image.GetPixelFormatSize(bitmap.PixelFormat) / 8;
    var heightInPixels = bitmapData.Height;
    var widthInBytes = bitmapData.Width * bytesPerPixel;
    var PtrFirstPixel = (byte*)bitmapData.Scan0;

    for (int y = 0; y < heightInPixels; y++)
    {
    byte* currentLine = PtrFirstPixel + (y * bitmapData.Stride);
    for (int x = 0; x < widthInBytes; x += bytesPerPixel)
    {
    int oldBlue = currentLine[x];
    int oldGreen = currentLine[x + 1];
    int oldRed = currentLine[x + 2];

    if (oldBlue==0 && oldGreen==0 && oldRed==0) {
    koordinatlar.Add(new Point(x/4, y));
    }

    }
    }
    bitmap.UnlockBits(bitmapData);
    }
    return koordinatlar;
    }


    public MainForm()
    {

    InitializeComponent();

    }
    void Button1Click(object sender, EventArgs e)
    {
    listBox1.DataSource = null;
    listBox1.DataSource = SiyahBeyazKoordinatAl(new Bitmap(pictureBox1.Image));

    }
    void Button2Click(object sender, EventArgs e)
    {
    if (openFileDialog1.ShowDialog()==DialogResult.OK) {
    pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
    }

    }
    }
    }




    < Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 26 Temmuz 2019; 18:23:42 >




  • Resim için arama anahtar kelimesi olarak "raster to gcode" olarak arama yapın. Faydalanabileceğiniz kaynaklara ulaşacaksınız. Birkaç tane github projesi gözüme çarptı. Belki fikir verebilir.



    < Bu mesaj bu kişi tarafından değiştirildi rafet32 -- 1 Ağustos 2019; 17:33:18 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.