|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
Здравствуйте! Написал приложение, которое на форме отображает выгруженное изображение. И если мышкой нажать на изображение, то получаем фрагмент изображения в зависимости от координат. Каждый фрагмент, который имеет двумерную таблицу преобразовывается в одномерную и записывает в List. Потом нажимаем на кнопку и данные сохраняются в двух csv-файл: с оттенками серого (двумерная таблица) и с RGB (трехмерная таблица). Наподобие MNIST. Эти данные потом будут выгружаться и обрабатываться на Python. На форме присутствуют элементы Button и PictureBox. C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139.
Сохранение с двумерной таблицей нормально. Для трехмерной таблицы в одну ячейку записывается массив их трех чисел как текст. В результате сохраняет. См. скриншот. Но сомневаюсь, что это хорошее решение. Скажите: 1. Как можно написать, чтоб в CSV-файл сохранялись данные из трех чисел в одну ячейку наиболее правильным образом? 2. [i]pixelColor помимо цветом R , G и B возвращает и A . Насколько корректно получать цвета, игнорируя A ? 3. Какие наиболее предпочтительные варианты форматов сохранения данных в трехмерном виде, где последующая обработка проиcходит в Python с использованием библиотек Pandas и Numpy? 4. Есть что-то еще некорректно в коде (что-то не учитывается, лишнее, не оптимальное)? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 21:02 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
ferzmikk, Извините, может не по теме, но зачем вы вводите свой класс ColorRGB, а не используете штатный System.Drawing.Color ? Кстати, как я вижу, вы переводите цвет в градацию серого, а у штатного Color есть метод GetBrightness() , который можно для этого использовать (возможно ошибаюсь, и он не совсем про это). Насчет хранения цвета в одной ячейке, может вам посмотреть, как цвет кодируется для HTML (пример: красный "#FF0000", синий "#0000FF", больше тут ) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 21:38 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
Colt ferzmikk, Извините, может не по теме, но зачем вы вводите свой класс ColorRGB, а не используете штатный System.Drawing.Color ? Кстати, как я вижу, вы переводите цвет в градацию серого, а у штатного Color есть метод GetBrightness() , который можно для этого использовать (возможно ошибаюсь, и он не совсем про это). C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
Код: c# 1. 2. 3. 4. 5. 6. 7.
Насчет хранения цвета в одной ячейке, может вам посмотреть, как цвет кодируется для HTML (пример: красный "#FF0000", синий "#0000FF", больше тут )Я правильно понимаю, что количество HTML-цветов меньше, чем у RGB? Учитывая, что мне нужны такие цвета для создания набора данных, которые потом можно будет использовать для нейронных сетей. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 22:44 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
Кстати C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 23:01 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
ferzmikk 3. Какие наиболее предпочтительные варианты форматов сохранения данных в трехмерном виде, где последующая обработка проиcходит в Python с использованием библиотек Pandas и Numpy? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 23:08 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
ferzmikkЯ правильно понимаю, что количество HTML-цветов меньше, чем у RGB? "Именованных" - меньше, но я предлагал обратить внимание на сам подход к кодированию цвета HTML:
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 00:27 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
Colt, Предположим перевели цвета из RGB в HTML-цвета и потом обратно в RGB, то возможно потерять какие-то цвета или цвета где-то усредняются? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 14:51 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
ferzmikk Colt, Предположим перевели цвета из RGB в HTML-цвета и потом обратно в RGB, то возможно потерять какие-то цвета или цвета где-то усредняются? Нет никаких "HTML-цветов". Есть разные способы записи цвета. По разным причинам на устройстве вывода цвета могут отображаться не так, как задумано. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 16:53 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
ferzmikk Colt, Предположим перевели цвета из RGB в HTML-цвета и потом обратно в RGB, то возможно потерять какие-то цвета или цвета где-то усредняются? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 16:59 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
многомерность, это по сути рекурсивность. То есть, если список одномерный, то это обычный List<T>, если 2-мерный, то это List<List<T>>, если 3-мерный, то LisT<List<List<T>>>. CSV для иерархических структур явно не подходит, а вот JSON и XML очень даже, там и проблемы с форматом хранения точки отпадут. Вообще цвет можно хранить 1им числом, ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 17:28 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
ferzmikk Colt, Предположим перевели цвета из RGB в HTML-цвета и потом обратно в RGB, то возможно потерять какие-то цвета или цвета где-то усредняются? Еще раз: разговор идет не про HTML-цвета (чтобы это не значило), а про один из вариантов закодировать цвет RGB (или ARGB, если учитывать прозрачность) в строку (как один из вариантов я предложил способ кодирования, который используется в HTML). Если в качестве исходного типа для хранения использовать тип Color (а внутри себя он хранит по байту на каждый цветовой компонент и один на прозрачность, итого 4 байта), то при кодировании в строку типа "#RRGGBB" (или "#AARRGGBB" для прозрачности) никакой информации не теряется. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 17:34 |
|
Сохранение трехмерной таблицы
|
|||
---|---|---|---|
#18+
Использую JSON. В классе оставляю пока два варианта: ColorGrayscale (как тип Int32) и ColorGrayscaleGetBrightness (как тип Single). И плюс еще Color (как тип Color) C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112.
1. Учитывая, что сохраняем свойство [i]Color , то на скриншоте видим, что при загрузке на Python для первого фрагмента там присутствуют 4 поля. И если правильно понимаю, то нужное поле это value, где хранится RGB. Значение value в каком формате сохраняется? Насколько возможно сделать так, чтобы поля knownColor , name и state не сохранялись в JSON? Или тут никак и задавать тогда уж только свои нужные пользовательские свойства в классе? 2. Важно, чтобы новая запись в файл не стирал предыдущие записи, а сверху добавлял. Писал так Код: c# 1. 2. 3. 4.
Не заработало. Пришлось писать так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Возможно ли было написать по проще? 3. Учитывая, что сначала выгружаются oldList и сверху добавляем новые значения List_dataColor . И далее дополненный oldList сохраняем в файл. Но предположим в файле 10 тысяч строк (элементов List). И по каким то причинам происходит сбой при сохранении. В итоге в оперативке потерялись данные oldList , и данные List_dataColor и еще потеряли данные в самом файле. Как тут безопасно код написать, чтобы предыдущие данные в файле не терялись? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2021, 12:20 |
|
|
start [/forum/topic.php?fid=20&msg=40038807&tid=1398378]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 445ms |
0 / 0 |